<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-comment">{-
(c) The University of Glasgow 2006
(c) The AQUA Project, Glasgow University, 1996-1998


Printing of Core syntax
-}</span><span>
</span><span id="line-8"></span><span>
</span><span id="line-9"></span><span class="hs-pragma">{-# LANGUAGE MultiWayIf #-}</span><span>
</span><span id="line-10"></span><span class="hs-pragma">{-# LANGUAGE LambdaCase #-}</span><span>
</span><span id="line-11"></span><span class="hs-pragma">{-# OPTIONS_GHC -fno-warn-orphans #-}</span><span>
</span><span id="line-12"></span><span>
</span><span id="line-13"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.Core.Ppr</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-14"></span><span>        </span><span class="annot"><a href="GHC.Core.Ppr.html#pprCoreExpr"><span class="hs-identifier">pprCoreExpr</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Core.Ppr.html#pprParendExpr"><span class="hs-identifier">pprParendExpr</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-15"></span><span>        </span><span class="annot"><a href="GHC.Core.Ppr.html#pprCoreBinding"><span class="hs-identifier">pprCoreBinding</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Core.Ppr.html#pprCoreBindings"><span class="hs-identifier">pprCoreBindings</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Core.Ppr.html#pprCoreAlt"><span class="hs-identifier">pprCoreAlt</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-16"></span><span>        </span><span class="annot"><a href="GHC.Core.Ppr.html#pprCoreBindingWithSize"><span class="hs-identifier">pprCoreBindingWithSize</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Core.Ppr.html#pprCoreBindingsWithSize"><span class="hs-identifier">pprCoreBindingsWithSize</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-17"></span><span>        </span><span class="annot"><a href="GHC.Core.Ppr.html#pprRules"><span class="hs-identifier">pprRules</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Core.Ppr.html#pprOptCo"><span class="hs-identifier">pprOptCo</span></a></span><span>
</span><span id="line-18"></span><span>    </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-19"></span><span>
</span><span id="line-20"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Prelude.html"><span class="hs-identifier">GHC.Prelude</span></a></span><span>
</span><span id="line-21"></span><span>
</span><span id="line-22"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Core.html"><span class="hs-identifier">GHC.Core</span></a></span><span>
</span><span id="line-23"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Core.Stats.html"><span class="hs-identifier">GHC.Core.Stats</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.Stats.html#exprStats"><span class="hs-identifier">exprStats</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-24"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Literal.html"><span class="hs-identifier">GHC.Types.Literal</span></a></span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Types.Literal.html#pprLiteral"><span class="hs-identifier">pprLiteral</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-25"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Name.html"><span class="hs-identifier">GHC.Types.Name</span></a></span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Types.Name.html#pprInfixName"><span class="hs-identifier">pprInfixName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Name.html#pprPrefixName"><span class="hs-identifier">pprPrefixName</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-26"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Var.html"><span class="hs-identifier">GHC.Types.Var</span></a></span><span>
</span><span id="line-27"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Id.html"><span class="hs-identifier">GHC.Types.Id</span></a></span><span>
</span><span id="line-28"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Id.Info.html"><span class="hs-identifier">GHC.Types.Id.Info</span></a></span><span>
</span><span id="line-29"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Demand.html"><span class="hs-identifier">GHC.Types.Demand</span></a></span><span>
</span><span id="line-30"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Cpr.html"><span class="hs-identifier">GHC.Types.Cpr</span></a></span><span>
</span><span id="line-31"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Core.DataCon.html"><span class="hs-identifier">GHC.Core.DataCon</span></a></span><span>
</span><span id="line-32"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Core.TyCon.html"><span class="hs-identifier">GHC.Core.TyCon</span></a></span><span>
</span><span id="line-33"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Core.TyCo.Ppr.html"><span class="hs-identifier">GHC.Core.TyCo.Ppr</span></a></span><span>
</span><span id="line-34"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Core.Coercion.html"><span class="hs-identifier">GHC.Core.Coercion</span></a></span><span>
</span><span id="line-35"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Basic.html"><span class="hs-identifier">GHC.Types.Basic</span></a></span><span>
</span><span id="line-36"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Data.Maybe.html"><span class="hs-identifier">GHC.Data.Maybe</span></a></span><span>
</span><span id="line-37"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Misc.html"><span class="hs-identifier">GHC.Utils.Misc</span></a></span><span>
</span><span id="line-38"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html"><span class="hs-identifier">GHC.Utils.Outputable</span></a></span><span>
</span><span id="line-39"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html"><span class="hs-identifier">GHC.Data.FastString</span></a></span><span>
</span><span id="line-40"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html"><span class="hs-identifier">GHC.Types.SrcLoc</span></a></span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#pprUserRealSpan"><span class="hs-identifier">pprUserRealSpan</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-41"></span><span>
</span><span id="line-42"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
\subsection{Public interfaces for Core printing (excluding instances)}
*                                                                      *
************************************************************************

@pprParendCoreExpr@ puts parens around non-atomic Core expressions.
-}</span><span>
</span><span id="line-51"></span><span>
</span><span id="line-52"></span><span id="local-6989586621680851442"><span class="annot"><a href="GHC.Core.Ppr.html#pprCoreBindings"><span class="hs-identifier hs-type">pprCoreBindings</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier hs-type">OutputableBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851442"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Core.html#Bind"><span class="hs-identifier hs-type">Bind</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851442"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-53"></span><span id="local-6989586621680851436"><span class="annot"><a href="GHC.Core.Ppr.html#pprCoreBinding"><span class="hs-identifier hs-type">pprCoreBinding</span></a></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier hs-type">OutputableBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851436"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Core.html#Bind"><span class="hs-identifier hs-type">Bind</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851436"><span class="hs-identifier hs-type">b</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-54"></span><span id="local-6989586621680851284"><span class="annot"><a href="GHC.Core.Ppr.html#pprCoreExpr"><span class="hs-identifier hs-type">pprCoreExpr</span></a></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier hs-type">OutputableBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851284"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Core.html#Expr"><span class="hs-identifier hs-type">Expr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851284"><span class="hs-identifier hs-type">b</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-55"></span><span id="local-6989586621680851283"><span class="annot"><a href="GHC.Core.Ppr.html#pprParendExpr"><span class="hs-identifier hs-type">pprParendExpr</span></a></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier hs-type">OutputableBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851283"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Core.html#Expr"><span class="hs-identifier hs-type">Expr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851283"><span class="hs-identifier hs-type">b</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-56"></span><span>
</span><span id="line-57"></span><span id="pprCoreBindings"><span class="annot"><span class="annottext">pprCoreBindings :: forall b. OutputableBndr b =&gt; [Bind b] -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreBindings"><span class="hs-identifier hs-var hs-var">pprCoreBindings</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Annotation b -&gt; [Bind b] -&gt; SDoc
forall a. OutputableBndr a =&gt; Annotation a -&gt; [Bind a] -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprTopBinds"><span class="hs-identifier hs-var">pprTopBinds</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation b
forall b. Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#noAnn"><span class="hs-identifier hs-var">noAnn</span></a></span><span>
</span><span id="line-58"></span><span id="pprCoreBinding"><span class="annot"><span class="annottext">pprCoreBinding :: forall b. OutputableBndr b =&gt; Bind b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreBinding"><span class="hs-identifier hs-var hs-var">pprCoreBinding</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Annotation b -&gt; Bind b -&gt; SDoc
forall a. OutputableBndr a =&gt; Annotation a -&gt; Bind a -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprTopBind"><span class="hs-identifier hs-var">pprTopBind</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation b
forall b. Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#noAnn"><span class="hs-identifier hs-var">noAnn</span></a></span><span>
</span><span id="line-59"></span><span>
</span><span id="line-60"></span><span class="annot"><a href="GHC.Core.Ppr.html#pprCoreBindingsWithSize"><span class="hs-identifier hs-type">pprCoreBindingsWithSize</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Core.html#CoreBind"><span class="hs-identifier hs-type">CoreBind</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-61"></span><span class="annot"><a href="GHC.Core.Ppr.html#pprCoreBindingWithSize"><span class="hs-identifier hs-type">pprCoreBindingWithSize</span></a></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Core.html#CoreBind"><span class="hs-identifier hs-type">CoreBind</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-62"></span><span>
</span><span id="line-63"></span><span id="pprCoreBindingsWithSize"><span class="annot"><span class="annottext">pprCoreBindingsWithSize :: [CoreBind] -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreBindingsWithSize"><span class="hs-identifier hs-var hs-var">pprCoreBindingsWithSize</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Annotation Id -&gt; [CoreBind] -&gt; SDoc
forall a. OutputableBndr a =&gt; Annotation a -&gt; [Bind a] -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprTopBinds"><span class="hs-identifier hs-var">pprTopBinds</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation Id
</span><a href="GHC.Core.Ppr.html#sizeAnn"><span class="hs-identifier hs-var">sizeAnn</span></a></span><span>
</span><span id="line-64"></span><span id="pprCoreBindingWithSize"><span class="annot"><span class="annottext">pprCoreBindingWithSize :: CoreBind -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreBindingWithSize"><span class="hs-identifier hs-var hs-var">pprCoreBindingWithSize</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Annotation Id -&gt; CoreBind -&gt; SDoc
forall a. OutputableBndr a =&gt; Annotation a -&gt; Bind a -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprTopBind"><span class="hs-identifier hs-var">pprTopBind</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation Id
</span><a href="GHC.Core.Ppr.html#sizeAnn"><span class="hs-identifier hs-var">sizeAnn</span></a></span><span>
</span><span id="line-65"></span><span>
</span><span id="line-66"></span><span id="local-6989586621680851431"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680851272"><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier hs-type">OutputableBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851431"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Bind"><span class="hs-identifier hs-type">Bind</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851431"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-67"></span><span>    </span><span id="local-6989586621680851269"><span class="annot"><span class="annottext">ppr :: Bind b -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680851267"><span class="annot"><span class="annottext">Bind b
</span><a href="#local-6989586621680851267"><span class="hs-identifier hs-var">bind</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Annotation b -&gt; Bind b -&gt; SDoc
forall a. OutputableBndr a =&gt; Annotation a -&gt; Bind a -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppr_bind"><span class="hs-identifier hs-var">ppr_bind</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation b
forall b. Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#noAnn"><span class="hs-identifier hs-var">noAnn</span></a></span><span> </span><span class="annot"><span class="annottext">Bind b
</span><a href="#local-6989586621680851267"><span class="hs-identifier hs-var">bind</span></a></span></span><span>
</span><span id="line-68"></span><span>
</span><span id="line-69"></span><span id="local-6989586621680851430"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680851263"><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier hs-type">OutputableBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851430"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Expr"><span class="hs-identifier hs-type">Expr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851430"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-70"></span><span>    </span><span id="local-6989586621680851261"><span class="annot"><span class="annottext">ppr :: Expr b -&gt; SDoc
</span><a href="#local-6989586621680851261"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680851260"><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851260"><span class="hs-identifier hs-var">expr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Expr b -&gt; SDoc
forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreExpr"><span class="hs-identifier hs-var">pprCoreExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851260"><span class="hs-identifier hs-var">expr</span></a></span></span><span>
</span><span id="line-71"></span><span>
</span><span id="line-72"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
\subsection{The guts}
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-79"></span><span>
</span><span id="line-80"></span><span class="hs-comment">-- | A function to produce an annotation for a given right-hand-side</span><span>
</span><span id="line-81"></span><span class="hs-keyword">type</span><span> </span><span id="Annotation"><span class="annot"><a href="GHC.Core.Ppr.html#Annotation"><span class="hs-identifier hs-var">Annotation</span></a></span></span><span> </span><span id="local-6989586621680851259"><span class="annot"><a href="#local-6989586621680851259"><span class="hs-identifier hs-type">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Core.html#Expr"><span class="hs-identifier hs-type">Expr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851259"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-82"></span><span>
</span><span id="line-83"></span><span class="hs-comment">-- | Annotate with the size of the right-hand-side</span><span>
</span><span id="line-84"></span><span class="annot"><a href="GHC.Core.Ppr.html#sizeAnn"><span class="hs-identifier hs-type">sizeAnn</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Core.html#CoreExpr"><span class="hs-identifier hs-type">CoreExpr</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-85"></span><span id="sizeAnn"><span class="annot"><span class="annottext">sizeAnn :: Annotation Id
</span><a href="GHC.Core.Ppr.html#sizeAnn"><span class="hs-identifier hs-var hs-var">sizeAnn</span></a></span></span><span> </span><span id="local-6989586621680851258"><span class="annot"><span class="annottext">CoreExpr
</span><a href="#local-6989586621680851258"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;-- RHS size:&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CoreStats -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CoreExpr -&gt; CoreStats
</span><a href="GHC.Core.Stats.html#exprStats"><span class="hs-identifier hs-var">exprStats</span></a></span><span> </span><span class="annot"><span class="annottext">CoreExpr
</span><a href="#local-6989586621680851258"><span class="hs-identifier hs-var">e</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-86"></span><span>
</span><span id="line-87"></span><span class="hs-comment">-- | No annotation</span><span>
</span><span id="line-88"></span><span id="local-6989586621680851437"><span class="annot"><a href="GHC.Core.Ppr.html#noAnn"><span class="hs-identifier hs-type">noAnn</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Core.html#Expr"><span class="hs-identifier hs-type">Expr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851437"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-89"></span><span id="noAnn"><span class="annot"><span class="annottext">noAnn :: forall b. Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#noAnn"><span class="hs-identifier hs-var hs-var">noAnn</span></a></span></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-90"></span><span>
</span><span id="line-91"></span><span id="local-6989586621680851438"><span class="annot"><a href="GHC.Core.Ppr.html#pprTopBinds"><span class="hs-identifier hs-type">pprTopBinds</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier hs-type">OutputableBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851438"><span class="hs-identifier hs-type">a</span></a></span><span>
</span><span id="line-92"></span><span>            </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Core.Ppr.html#Annotation"><span class="hs-identifier hs-type">Annotation</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851438"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-comment">-- ^ generate an annotation to place before the</span><span>
</span><span id="line-93"></span><span>                            </span><span class="hs-comment">-- binding</span><span>
</span><span id="line-94"></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Core.html#Bind"><span class="hs-identifier hs-type">Bind</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851438"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span>     </span><span class="hs-comment">-- ^ bindings to show</span><span>
</span><span id="line-95"></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>         </span><span class="hs-comment">-- ^ the pretty result</span><span>
</span><span id="line-96"></span><span id="pprTopBinds"><span class="annot"><span class="annottext">pprTopBinds :: forall a. OutputableBndr a =&gt; Annotation a -&gt; [Bind a] -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprTopBinds"><span class="hs-identifier hs-var hs-var">pprTopBinds</span></a></span></span><span> </span><span id="local-6989586621680851252"><span class="annot"><span class="annottext">Annotation a
</span><a href="#local-6989586621680851252"><span class="hs-identifier hs-var">ann</span></a></span></span><span> </span><span id="local-6989586621680851251"><span class="annot"><span class="annottext">[Bind a]
</span><a href="#local-6989586621680851251"><span class="hs-identifier hs-var">binds</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Bind a -&gt; SDoc) -&gt; [Bind a] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Annotation a -&gt; Bind a -&gt; SDoc
forall a. OutputableBndr a =&gt; Annotation a -&gt; Bind a -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprTopBind"><span class="hs-identifier hs-var">pprTopBind</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation a
</span><a href="#local-6989586621680851252"><span class="hs-identifier hs-var">ann</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Bind a]
</span><a href="#local-6989586621680851251"><span class="hs-identifier hs-var">binds</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-97"></span><span>
</span><span id="line-98"></span><span id="local-6989586621680851434"><span class="annot"><a href="GHC.Core.Ppr.html#pprTopBind"><span class="hs-identifier hs-type">pprTopBind</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier hs-type">OutputableBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851434"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Core.Ppr.html#Annotation"><span class="hs-identifier hs-type">Annotation</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851434"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Core.html#Bind"><span class="hs-identifier hs-type">Bind</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851434"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-99"></span><span id="pprTopBind"><span class="annot"><span class="annottext">pprTopBind :: forall a. OutputableBndr a =&gt; Annotation a -&gt; Bind a -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprTopBind"><span class="hs-identifier hs-var hs-var">pprTopBind</span></a></span></span><span> </span><span id="local-6989586621680851245"><span class="annot"><span class="annottext">Annotation a
</span><a href="#local-6989586621680851245"><span class="hs-identifier hs-var">ann</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#NonRec"><span class="hs-identifier hs-type">NonRec</span></a></span><span> </span><span id="local-6989586621680851243"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680851243"><span class="hs-identifier hs-var">binder</span></a></span></span><span> </span><span id="local-6989586621680851242"><span class="annot"><span class="annottext">Expr a
</span><a href="#local-6989586621680851242"><span class="hs-identifier hs-var">expr</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-100"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Annotation a -&gt; (a, Expr a) -&gt; SDoc
forall b. OutputableBndr b =&gt; Annotation b -&gt; (b, Expr b) -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppr_binding"><span class="hs-identifier hs-var">ppr_binding</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation a
</span><a href="#local-6989586621680851245"><span class="hs-identifier hs-var">ann</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680851243"><span class="hs-identifier hs-var">binder</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Expr a
</span><a href="#local-6989586621680851242"><span class="hs-identifier hs-var">expr</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#blankLine"><span class="hs-identifier hs-var">blankLine</span></a></span><span>
</span><span id="line-101"></span><span>
</span><span id="line-102"></span><span class="annot"><a href="GHC.Core.Ppr.html#pprTopBind"><span class="hs-identifier hs-var">pprTopBind</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation a
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Rec"><span class="hs-identifier hs-type">Rec</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-103"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Rec { }&quot;</span></span><span>
</span><span id="line-104"></span><span class="annot"><a href="GHC.Core.Ppr.html#pprTopBind"><span class="hs-identifier hs-var">pprTopBind</span></a></span><span> </span><span id="local-6989586621680851237"><span class="annot"><span class="annottext">Annotation a
</span><a href="#local-6989586621680851237"><span class="hs-identifier hs-var">ann</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Rec"><span class="hs-identifier hs-type">Rec</span></a></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680851236"><span class="annot"><span class="annottext">(a, Expr a)
</span><a href="#local-6989586621680851236"><span class="hs-identifier hs-var">b</span></a></span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span id="local-6989586621680851235"><span class="annot"><span class="annottext">[(a, Expr a)]
</span><a href="#local-6989586621680851235"><span class="hs-identifier hs-var">bs</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-105"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Rec {&quot;</span></span><span class="hs-special">,</span><span>
</span><span id="line-106"></span><span>          </span><span class="annot"><span class="annottext">Annotation a -&gt; (a, Expr a) -&gt; SDoc
forall b. OutputableBndr b =&gt; Annotation b -&gt; (b, Expr b) -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppr_binding"><span class="hs-identifier hs-var">ppr_binding</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation a
</span><a href="#local-6989586621680851237"><span class="hs-identifier hs-var">ann</span></a></span><span> </span><span class="annot"><span class="annottext">(a, Expr a)
</span><a href="#local-6989586621680851236"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-107"></span><span>          </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#blankLine"><span class="hs-identifier hs-var">blankLine</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation a -&gt; (a, Expr a) -&gt; SDoc
forall b. OutputableBndr b =&gt; Annotation b -&gt; (b, Expr b) -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppr_binding"><span class="hs-identifier hs-var">ppr_binding</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation a
</span><a href="#local-6989586621680851237"><span class="hs-identifier hs-var">ann</span></a></span><span> </span><span class="annot"><span class="annottext">(a, Expr a)
</span><a href="#local-6989586621680851234"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621680851234"><span class="annot"><span class="annottext">(a, Expr a)
</span><a href="#local-6989586621680851234"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[(a, Expr a)]
</span><a href="#local-6989586621680851235"><span class="hs-identifier hs-var">bs</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-108"></span><span>          </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;end Rec }&quot;</span></span><span class="hs-special">,</span><span>
</span><span id="line-109"></span><span>          </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#blankLine"><span class="hs-identifier hs-var">blankLine</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-110"></span><span>
</span><span id="line-111"></span><span id="local-6989586621680851233"><span class="annot"><a href="GHC.Core.Ppr.html#ppr_bind"><span class="hs-identifier hs-type">ppr_bind</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier hs-type">OutputableBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851233"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Core.Ppr.html#Annotation"><span class="hs-identifier hs-type">Annotation</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851233"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Core.html#Bind"><span class="hs-identifier hs-type">Bind</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851233"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-112"></span><span>
</span><span id="line-113"></span><span id="ppr_bind"><span class="annot"><span class="annottext">ppr_bind :: forall a. OutputableBndr a =&gt; Annotation a -&gt; Bind a -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppr_bind"><span class="hs-identifier hs-var hs-var">ppr_bind</span></a></span></span><span> </span><span id="local-6989586621680851230"><span class="annot"><span class="annottext">Annotation b
</span><a href="#local-6989586621680851230"><span class="hs-identifier hs-var">ann</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#NonRec"><span class="hs-identifier hs-type">NonRec</span></a></span><span> </span><span id="local-6989586621680851229"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680851229"><span class="hs-identifier hs-var">val_bdr</span></a></span></span><span> </span><span id="local-6989586621680851228"><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851228"><span class="hs-identifier hs-var">expr</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Annotation b -&gt; (b, Expr b) -&gt; SDoc
forall b. OutputableBndr b =&gt; Annotation b -&gt; (b, Expr b) -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppr_binding"><span class="hs-identifier hs-var">ppr_binding</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation b
</span><a href="#local-6989586621680851230"><span class="hs-identifier hs-var">ann</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680851229"><span class="hs-identifier hs-var">val_bdr</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851228"><span class="hs-identifier hs-var">expr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-114"></span><span class="annot"><a href="GHC.Core.Ppr.html#ppr_bind"><span class="hs-identifier hs-var">ppr_bind</span></a></span><span> </span><span id="local-6989586621680851227"><span class="annot"><span class="annottext">Annotation b
</span><a href="#local-6989586621680851227"><span class="hs-identifier hs-var">ann</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Rec"><span class="hs-identifier hs-type">Rec</span></a></span><span> </span><span id="local-6989586621680851226"><span class="annot"><span class="annottext">[(b, Expr b)]
</span><a href="#local-6989586621680851226"><span class="hs-identifier hs-var">binds</span></a></span></span><span class="hs-special">)</span><span>           </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">((b, Expr b) -&gt; SDoc) -&gt; [(b, Expr b)] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">(b, Expr b) -&gt; SDoc
</span><a href="#local-6989586621680851225"><span class="hs-identifier hs-var">pp</span></a></span><span> </span><span class="annot"><span class="annottext">[(b, Expr b)]
</span><a href="#local-6989586621680851226"><span class="hs-identifier hs-var">binds</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-115"></span><span>                                    </span><span class="hs-keyword">where</span><span>
</span><span id="line-116"></span><span>                                      </span><span id="local-6989586621680851225"><span class="annot"><span class="annottext">pp :: (b, Expr b) -&gt; SDoc
</span><a href="#local-6989586621680851225"><span class="hs-identifier hs-var hs-var">pp</span></a></span></span><span> </span><span id="local-6989586621680851223"><span class="annot"><span class="annottext">(b, Expr b)
</span><a href="#local-6989586621680851223"><span class="hs-identifier hs-var">bind</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Annotation b -&gt; (b, Expr b) -&gt; SDoc
forall b. OutputableBndr b =&gt; Annotation b -&gt; (b, Expr b) -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppr_binding"><span class="hs-identifier hs-var">ppr_binding</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation b
</span><a href="#local-6989586621680851227"><span class="hs-identifier hs-var">ann</span></a></span><span> </span><span class="annot"><span class="annottext">(b, Expr b)
</span><a href="#local-6989586621680851223"><span class="hs-identifier hs-var">bind</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#semi"><span class="hs-identifier hs-var">semi</span></a></span><span>
</span><span id="line-117"></span><span>
</span><span id="line-118"></span><span id="local-6989586621680851423"><span class="annot"><a href="GHC.Core.Ppr.html#ppr_binding"><span class="hs-identifier hs-type">ppr_binding</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier hs-type">OutputableBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851423"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Core.Ppr.html#Annotation"><span class="hs-identifier hs-type">Annotation</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851423"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680851423"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Core.html#Expr"><span class="hs-identifier hs-type">Expr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851423"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-119"></span><span id="ppr_binding"><span class="annot"><span class="annottext">ppr_binding :: forall b. OutputableBndr b =&gt; Annotation b -&gt; (b, Expr b) -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppr_binding"><span class="hs-identifier hs-var hs-var">ppr_binding</span></a></span></span><span> </span><span id="local-6989586621680851218"><span class="annot"><span class="annottext">Annotation b
</span><a href="#local-6989586621680851218"><span class="hs-identifier hs-var">ann</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680851217"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680851217"><span class="hs-identifier hs-var">val_bdr</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680851216"><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851216"><span class="hs-identifier hs-var">expr</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-120"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">Annotation b
</span><a href="#local-6989586621680851218"><span class="hs-identifier hs-var">ann</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851216"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-121"></span><span>         </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Bool) -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppUnlessOption"><span class="hs-identifier hs-var">ppUnlessOption</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressTypeSignatures"><span class="hs-identifier hs-var hs-var">sdocSuppressTypeSignatures</span></a></span><span>
</span><span id="line-122"></span><span>             </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BindingSite -&gt; b -&gt; SDoc
forall a. OutputableBndr a =&gt; BindingSite -&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprBndr"><span class="hs-identifier hs-var">pprBndr</span></a></span><span> </span><span class="annot"><span class="annottext">BindingSite
</span><a href="GHC.Utils.Outputable.html#LetBind"><span class="hs-identifier hs-var">LetBind</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680851217"><span class="hs-identifier hs-var">val_bdr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-123"></span><span>         </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680851211"><span class="hs-identifier hs-var">pp_bind</span></a></span><span>
</span><span id="line-124"></span><span>         </span><span class="hs-special">]</span><span>
</span><span id="line-125"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-126"></span><span>    </span><span id="local-6989586621680851209"><span class="annot"><span class="annottext">pp_val_bdr :: SDoc
</span><a href="#local-6989586621680851209"><span class="hs-identifier hs-var hs-var">pp_val_bdr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">b -&gt; SDoc
forall a. OutputableBndr a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprPrefixOcc"><span class="hs-identifier hs-var">pprPrefixOcc</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680851217"><span class="hs-identifier hs-var">val_bdr</span></a></span><span>
</span><span id="line-127"></span><span>
</span><span id="line-128"></span><span>    </span><span id="local-6989586621680851211"><span class="annot"><span class="annottext">pp_bind :: SDoc
</span><a href="#local-6989586621680851211"><span class="hs-identifier hs-var hs-var">pp_bind</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">b -&gt; Maybe Int
forall a. OutputableBndr a =&gt; a -&gt; Maybe Int
</span><a href="GHC.Utils.Outputable.html#bndrIsJoin_maybe"><span class="hs-identifier hs-var">bndrIsJoin_maybe</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680851217"><span class="hs-identifier hs-var">val_bdr</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-129"></span><span>                </span><span class="annot"><span class="annottext">Maybe Int
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680851205"><span class="hs-identifier hs-var">pp_normal_bind</span></a></span><span>
</span><span id="line-130"></span><span>                </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621680851204"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680851204"><span class="hs-identifier hs-var">ar</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="#local-6989586621680851203"><span class="hs-identifier hs-var">pp_join_bind</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680851204"><span class="hs-identifier hs-var">ar</span></a></span><span>
</span><span id="line-131"></span><span>
</span><span id="line-132"></span><span>    </span><span id="local-6989586621680851205"><span class="annot"><span class="annottext">pp_normal_bind :: SDoc
</span><a href="#local-6989586621680851205"><span class="hs-identifier hs-var hs-var">pp_normal_bind</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hang"><span class="hs-identifier hs-var">hang</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680851209"><span class="hs-identifier hs-var">pp_val_bdr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#equals"><span class="hs-identifier hs-var">equals</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation b
forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreExpr"><span class="hs-identifier hs-var">pprCoreExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851216"><span class="hs-identifier hs-var">expr</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-133"></span><span>
</span><span id="line-134"></span><span>      </span><span class="hs-comment">-- For a join point of join arity n, we want to print j = \x1 ... xn -&gt; e</span><span>
</span><span id="line-135"></span><span>      </span><span class="hs-comment">-- as &quot;j x1 ... xn = e&quot; to differentiate when a join point returns a</span><span>
</span><span id="line-136"></span><span>      </span><span class="hs-comment">-- lambda (the first rendering looks like a nullary join point returning</span><span>
</span><span id="line-137"></span><span>      </span><span class="hs-comment">-- an n-argument function).</span><span>
</span><span id="line-138"></span><span>    </span><span id="local-6989586621680851203"><span class="annot"><span class="annottext">pp_join_bind :: Int -&gt; SDoc
</span><a href="#local-6989586621680851203"><span class="hs-identifier hs-var hs-var">pp_join_bind</span></a></span></span><span> </span><span id="local-6989586621680851197"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680851197"><span class="hs-identifier hs-var">join_arity</span></a></span></span><span>
</span><span id="line-139"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">[b]
</span><a href="#local-6989586621680851196"><span class="hs-identifier hs-var">bndrs</span></a></span><span> </span><span class="annot"><span class="annottext">[b] -&gt; Int -&gt; Bool
forall a. [a] -&gt; Int -&gt; Bool
</span><a href="GHC.Utils.Misc.html#lengthAtLeast"><span class="hs-operator hs-var">`lengthAtLeast`</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680851197"><span class="hs-identifier hs-var">join_arity</span></a></span><span>
</span><span id="line-140"></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hang"><span class="hs-identifier hs-var">hang</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680851209"><span class="hs-identifier hs-var">pp_val_bdr</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(b -&gt; SDoc) -&gt; [b] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BindingSite -&gt; b -&gt; SDoc
forall a. OutputableBndr a =&gt; BindingSite -&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprBndr"><span class="hs-identifier hs-var">pprBndr</span></a></span><span> </span><span class="annot"><span class="annottext">BindingSite
</span><a href="GHC.Utils.Outputable.html#LambdaBind"><span class="hs-identifier hs-var">LambdaBind</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[b]
</span><a href="#local-6989586621680851192"><span class="hs-identifier hs-var">lhs_bndrs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-141"></span><span>           </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#equals"><span class="hs-identifier hs-var">equals</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation b
forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreExpr"><span class="hs-identifier hs-var">pprCoreExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851191"><span class="hs-identifier hs-var">rhs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-142"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-comment">-- Yikes!  A join-binding with too few lambda</span><span>
</span><span id="line-143"></span><span>                  </span><span class="hs-comment">-- Lint will complain, but we don't want to crash</span><span>
</span><span id="line-144"></span><span>                  </span><span class="hs-comment">-- the pretty-printer else we can't see what's wrong</span><span>
</span><span id="line-145"></span><span>                  </span><span class="hs-comment">-- So refer to printing  j = e</span><span>
</span><span id="line-146"></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680851205"><span class="hs-identifier hs-var">pp_normal_bind</span></a></span><span>
</span><span id="line-147"></span><span>      </span><span class="hs-keyword">where</span><span>
</span><span id="line-148"></span><span>        </span><span class="hs-special">(</span><span id="local-6989586621680851196"><span class="annot"><span class="annottext">[b]
</span><a href="#local-6989586621680851196"><span class="hs-identifier hs-var">bndrs</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680851190"><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851190"><span class="hs-identifier hs-var">body</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Expr b -&gt; ([b], Expr b)
forall b. Expr b -&gt; ([b], Expr b)
</span><a href="GHC.Core.html#collectBinders"><span class="hs-identifier hs-var">collectBinders</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851216"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-149"></span><span>        </span><span id="local-6989586621680851192"><span class="annot"><span class="annottext">lhs_bndrs :: [b]
</span><a href="#local-6989586621680851192"><span class="hs-identifier hs-var hs-var">lhs_bndrs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; [b] -&gt; [b]
forall a. Int -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.List.html#take"><span class="hs-identifier hs-var">take</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680851197"><span class="hs-identifier hs-var">join_arity</span></a></span><span> </span><span class="annot"><span class="annottext">[b]
</span><a href="#local-6989586621680851196"><span class="hs-identifier hs-var">bndrs</span></a></span><span>
</span><span id="line-150"></span><span>        </span><span id="local-6989586621680851191"><span class="annot"><span class="annottext">rhs :: Expr b
</span><a href="#local-6989586621680851191"><span class="hs-identifier hs-var hs-var">rhs</span></a></span></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[b] -&gt; Expr b -&gt; Expr b
forall b. [b] -&gt; Expr b -&gt; Expr b
</span><a href="GHC.Core.html#mkLams"><span class="hs-identifier hs-var">mkLams</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; [b] -&gt; [b]
forall a. Int -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.List.html#drop"><span class="hs-identifier hs-var">drop</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680851197"><span class="hs-identifier hs-var">join_arity</span></a></span><span> </span><span class="annot"><span class="annottext">[b]
</span><a href="#local-6989586621680851196"><span class="hs-identifier hs-var">bndrs</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851190"><span class="hs-identifier hs-var">body</span></a></span><span>
</span><span id="line-151"></span><span>
</span><span id="line-152"></span><span id="pprParendExpr"><span class="annot"><span class="annottext">pprParendExpr :: forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprParendExpr"><span class="hs-identifier hs-var hs-var">pprParendExpr</span></a></span></span><span> </span><span id="local-6989586621680851183"><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851183"><span class="hs-identifier hs-var">expr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; Expr b -&gt; SDoc
forall b. OutputableBndr b =&gt; (SDoc -&gt; SDoc) -&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppr_expr"><span class="hs-identifier hs-var">ppr_expr</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851183"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-153"></span><span id="pprCoreExpr"><span class="annot"><span class="annottext">pprCoreExpr :: forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreExpr"><span class="hs-identifier hs-var hs-var">pprCoreExpr</span></a></span></span><span>   </span><span id="local-6989586621680851178"><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851178"><span class="hs-identifier hs-var">expr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; Expr b -&gt; SDoc
forall b. OutputableBndr b =&gt; (SDoc -&gt; SDoc) -&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppr_expr"><span class="hs-identifier hs-var">ppr_expr</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#noParens"><span class="hs-identifier hs-var">noParens</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851178"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-154"></span><span>
</span><span id="line-155"></span><span class="annot"><a href="GHC.Core.Ppr.html#noParens"><span class="hs-identifier hs-type">noParens</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-156"></span><span id="noParens"><span class="annot"><span class="annottext">noParens :: SDoc -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#noParens"><span class="hs-identifier hs-var hs-var">noParens</span></a></span></span><span> </span><span id="local-6989586621680851176"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680851176"><span class="hs-identifier hs-var">pp</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680851176"><span class="hs-identifier hs-var">pp</span></a></span><span>
</span><span id="line-157"></span><span>
</span><span id="line-158"></span><span class="annot"><a href="GHC.Core.Ppr.html#pprOptCo"><span class="hs-identifier hs-type">pprOptCo</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Core.TyCo.Rep.html#Coercion"><span class="hs-identifier hs-type">Coercion</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-159"></span><span class="hs-comment">-- Print a coercion optionally; i.e. honouring -dsuppress-coercions</span><span>
</span><span id="line-160"></span><span id="pprOptCo"><span class="annot"><span class="annottext">pprOptCo :: Coercion -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprOptCo"><span class="hs-identifier hs-var hs-var">pprOptCo</span></a></span></span><span> </span><span id="local-6989586621680851175"><span class="annot"><span class="annottext">Coercion
</span><a href="#local-6989586621680851175"><span class="hs-identifier hs-var">co</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Bool) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a. (SDocContext -&gt; a) -&gt; (a -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocOption"><span class="hs-identifier hs-var">sdocOption</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressCoercions"><span class="hs-identifier hs-var hs-var">sdocSuppressCoercions</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; SDoc) -&gt; SDoc) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span class="hs-glyph">case</span><span>
</span><span id="line-161"></span><span>              </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#angleBrackets"><span class="hs-identifier hs-var">angleBrackets</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Co:&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Coercion -&gt; Int
</span><a href="GHC.Core.TyCo.Rep.html#coercionSize"><span class="hs-identifier hs-var">coercionSize</span></a></span><span> </span><span class="annot"><span class="annottext">Coercion
</span><a href="#local-6989586621680851175"><span class="hs-identifier hs-var">co</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-162"></span><span>              </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Coercion -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Coercion
</span><a href="#local-6989586621680851175"><span class="hs-identifier hs-var">co</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Coercion -&gt; Type
</span><a href="GHC.Core.Coercion.html#coercionType"><span class="hs-identifier hs-var">coercionType</span></a></span><span> </span><span class="annot"><span class="annottext">Coercion
</span><a href="#local-6989586621680851175"><span class="hs-identifier hs-var">co</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-163"></span><span>
</span><span id="line-164"></span><span id="local-6989586621680851412"><span class="annot"><a href="GHC.Core.Ppr.html#ppr_expr"><span class="hs-identifier hs-type">ppr_expr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier hs-type">OutputableBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851412"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Core.html#Expr"><span class="hs-identifier hs-type">Expr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851412"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-165"></span><span>        </span><span class="hs-comment">-- The function adds parens in context that need</span><span>
</span><span id="line-166"></span><span>        </span><span class="hs-comment">-- an atomic value (e.g. function args)</span><span>
</span><span id="line-167"></span><span>
</span><span id="line-168"></span><span id="ppr_expr"><span class="annot"><span class="annottext">ppr_expr :: forall b. OutputableBndr b =&gt; (SDoc -&gt; SDoc) -&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppr_expr"><span class="hs-identifier hs-var hs-var">ppr_expr</span></a></span></span><span> </span><span id="local-6989586621680851144"><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851144"><span class="hs-identifier hs-var">add_par</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Var"><span class="hs-identifier hs-type">Var</span></a></span><span> </span><span id="local-6989586621680851142"><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680851142"><span class="hs-identifier hs-var">name</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-169"></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Id -&gt; Bool
</span><a href="GHC.Types.Id.html#isJoinId"><span class="hs-identifier hs-var">isJoinId</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680851142"><span class="hs-identifier hs-var">name</span></a></span><span>               </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851144"><span class="hs-identifier hs-var">add_par</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;jump&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680851140"><span class="hs-identifier hs-var">pp_name</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-170"></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>                   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680851140"><span class="hs-identifier hs-var">pp_name</span></a></span><span>
</span><span id="line-171"></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-172"></span><span>   </span><span id="local-6989586621680851140"><span class="annot"><span class="annottext">pp_name :: SDoc
</span><a href="#local-6989586621680851140"><span class="hs-identifier hs-var hs-var">pp_name</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Id -&gt; SDoc
forall a. OutputableBndr a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprPrefixOcc"><span class="hs-identifier hs-var">pprPrefixOcc</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680851142"><span class="hs-identifier hs-var">name</span></a></span><span>
</span><span id="line-173"></span><span class="annot"><a href="GHC.Core.Ppr.html#ppr_expr"><span class="hs-identifier hs-var">ppr_expr</span></a></span><span> </span><span id="local-6989586621680851138"><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851138"><span class="hs-identifier hs-var">add_par</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span> </span><span id="local-6989586621680851136"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621680851136"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851138"><span class="hs-identifier hs-var">add_par</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;TYPE:&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621680851136"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span>       </span><span class="hs-comment">-- Weird</span><span>
</span><span id="line-174"></span><span class="annot"><a href="GHC.Core.Ppr.html#ppr_expr"><span class="hs-identifier hs-var">ppr_expr</span></a></span><span> </span><span id="local-6989586621680851135"><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851135"><span class="hs-identifier hs-var">add_par</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Coercion"><span class="hs-identifier hs-type">Coercion</span></a></span><span> </span><span id="local-6989586621680851133"><span class="annot"><span class="annottext">Coercion
</span><a href="#local-6989586621680851133"><span class="hs-identifier hs-var">co</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851135"><span class="hs-identifier hs-var">add_par</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;CO:&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Coercion -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Coercion
</span><a href="#local-6989586621680851133"><span class="hs-identifier hs-var">co</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-175"></span><span class="annot"><a href="GHC.Core.Ppr.html#ppr_expr"><span class="hs-identifier hs-var">ppr_expr</span></a></span><span> </span><span id="local-6989586621680851132"><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851132"><span class="hs-identifier hs-var">add_par</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Lit"><span class="hs-identifier hs-type">Lit</span></a></span><span> </span><span id="local-6989586621680851130"><span class="annot"><span class="annottext">Literal
</span><a href="#local-6989586621680851130"><span class="hs-identifier hs-var">lit</span></a></span></span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; Literal -&gt; SDoc
</span><a href="GHC.Types.Literal.html#pprLiteral"><span class="hs-identifier hs-var">pprLiteral</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851132"><span class="hs-identifier hs-var">add_par</span></a></span><span> </span><span class="annot"><span class="annottext">Literal
</span><a href="#local-6989586621680851130"><span class="hs-identifier hs-var">lit</span></a></span><span>
</span><span id="line-176"></span><span>
</span><span id="line-177"></span><span class="annot"><a href="GHC.Core.Ppr.html#ppr_expr"><span class="hs-identifier hs-var">ppr_expr</span></a></span><span> </span><span id="local-6989586621680851129"><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851129"><span class="hs-identifier hs-var">add_par</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Cast"><span class="hs-identifier hs-type">Cast</span></a></span><span> </span><span id="local-6989586621680851127"><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851127"><span class="hs-identifier hs-var">expr</span></a></span></span><span> </span><span id="local-6989586621680851126"><span class="annot"><span class="annottext">Coercion
</span><a href="#local-6989586621680851126"><span class="hs-identifier hs-var">co</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-178"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851129"><span class="hs-identifier hs-var">add_par</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Expr b -&gt; SDoc
forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprParendExpr"><span class="hs-identifier hs-var">pprParendExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851127"><span class="hs-identifier hs-var">expr</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;`cast`&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Coercion -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprOptCo"><span class="hs-identifier hs-var">pprOptCo</span></a></span><span> </span><span class="annot"><span class="annottext">Coercion
</span><a href="#local-6989586621680851126"><span class="hs-identifier hs-var">co</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-179"></span><span>
</span><span id="line-180"></span><span class="annot"><a href="GHC.Core.Ppr.html#ppr_expr"><span class="hs-identifier hs-var">ppr_expr</span></a></span><span> </span><span id="local-6989586621680851125"><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851125"><span class="hs-identifier hs-var">add_par</span></a></span></span><span> </span><span id="local-6989586621680851124"><span class="annot"><span class="annottext">expr :: Expr b
</span><a href="#local-6989586621680851124"><span class="hs-identifier hs-var">expr</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Lam"><span class="hs-identifier hs-type">Lam</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>
</span><span id="line-181"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">let</span><span>
</span><span id="line-182"></span><span>        </span><span class="hs-special">(</span><span id="local-6989586621680851122"><span class="annot"><span class="annottext">[b]
</span><a href="#local-6989586621680851122"><span class="hs-identifier hs-var">bndrs</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680851121"><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851121"><span class="hs-identifier hs-var">body</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Expr b -&gt; ([b], Expr b)
forall b. Expr b -&gt; ([b], Expr b)
</span><a href="GHC.Core.html#collectBinders"><span class="hs-identifier hs-var">collectBinders</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851124"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-183"></span><span>    </span><span class="hs-keyword">in</span><span>
</span><span id="line-184"></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851125"><span class="hs-identifier hs-var">add_par</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-185"></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hang"><span class="hs-identifier hs-var">hang</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\\&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(b -&gt; SDoc) -&gt; [b] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BindingSite -&gt; b -&gt; SDoc
forall a. OutputableBndr a =&gt; BindingSite -&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprBndr"><span class="hs-identifier hs-var">pprBndr</span></a></span><span> </span><span class="annot"><span class="annottext">BindingSite
</span><a href="GHC.Utils.Outputable.html#LambdaBind"><span class="hs-identifier hs-var">LambdaBind</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[b]
</span><a href="#local-6989586621680851122"><span class="hs-identifier hs-var">bndrs</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#arrow"><span class="hs-identifier hs-var">arrow</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-186"></span><span>         </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Expr b -&gt; SDoc
forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreExpr"><span class="hs-identifier hs-var">pprCoreExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851121"><span class="hs-identifier hs-var">body</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-187"></span><span>
</span><span id="line-188"></span><span class="annot"><a href="GHC.Core.Ppr.html#ppr_expr"><span class="hs-identifier hs-var">ppr_expr</span></a></span><span> </span><span id="local-6989586621680851119"><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851119"><span class="hs-identifier hs-var">add_par</span></a></span></span><span> </span><span id="local-6989586621680851118"><span class="annot"><span class="annottext">expr :: Expr b
</span><a href="#local-6989586621680851118"><span class="hs-identifier hs-var">expr</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#App"><span class="hs-identifier hs-type">App</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-189"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Bool) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a. (SDocContext -&gt; a) -&gt; (a -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocOption"><span class="hs-identifier hs-var">sdocOption</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressTypeApplications"><span class="hs-identifier hs-var hs-var">sdocSuppressTypeApplications</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; SDoc) -&gt; SDoc) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680851115"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680851115"><span class="hs-identifier hs-var">supp_ty_app</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-190"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Expr b -&gt; (Expr b, [Expr b])
forall b. Expr b -&gt; (Expr b, [Expr b])
</span><a href="GHC.Core.html#collectArgs"><span class="hs-identifier hs-var">collectArgs</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851118"><span class="hs-identifier hs-var">expr</span></a></span><span> </span><span class="hs-keyword">of</span><span> </span><span class="hs-special">{</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680851113"><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851113"><span class="hs-identifier hs-var">fun</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680851112"><span class="annot"><span class="annottext">[Expr b]
</span><a href="#local-6989586621680851112"><span class="hs-identifier hs-var">args</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-191"></span><span>    </span><span class="hs-keyword">let</span><span>
</span><span id="line-192"></span><span>        </span><span id="local-6989586621680851110"><span class="annot"><span class="annottext">pp_args :: SDoc
</span><a href="#local-6989586621680851110"><span class="hs-identifier hs-var hs-var">pp_args</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Expr b -&gt; SDoc) -&gt; [Expr b] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b -&gt; SDoc
forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprArg"><span class="hs-identifier hs-var">pprArg</span></a></span><span> </span><span class="annot"><span class="annottext">[Expr b]
</span><a href="#local-6989586621680851112"><span class="hs-identifier hs-var">args</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-193"></span><span>        </span><span id="local-6989586621680851108"><span class="annot"><span class="annottext">val_args :: [Expr b]
</span><a href="#local-6989586621680851108"><span class="hs-identifier hs-var hs-var">val_args</span></a></span></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Expr b -&gt; Bool) -&gt; [Expr b] -&gt; [Expr b]
forall a. (a -&gt; Bool) -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.List.html#dropWhile"><span class="hs-identifier hs-var">dropWhile</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b -&gt; Bool
forall b. Expr b -&gt; Bool
</span><a href="GHC.Core.html#isTypeArg"><span class="hs-identifier hs-var">isTypeArg</span></a></span><span> </span><span class="annot"><span class="annottext">[Expr b]
</span><a href="#local-6989586621680851112"><span class="hs-identifier hs-var">args</span></a></span><span>   </span><span class="hs-comment">-- Drop the type arguments for tuples</span><span>
</span><span id="line-194"></span><span>        </span><span id="local-6989586621680851104"><span class="annot"><span class="annottext">pp_tup_args :: SDoc
</span><a href="#local-6989586621680851104"><span class="hs-identifier hs-var hs-var">pp_tup_args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Expr b -&gt; SDoc) -&gt; [Expr b] -&gt; SDoc
forall a. (a -&gt; SDoc) -&gt; [a] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprWithCommas"><span class="hs-identifier hs-var">pprWithCommas</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b -&gt; SDoc
forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreExpr"><span class="hs-identifier hs-var">pprCoreExpr</span></a></span><span> </span><span class="annot"><span class="annottext">[Expr b]
</span><a href="#local-6989586621680851108"><span class="hs-identifier hs-var">val_args</span></a></span><span>
</span><span id="line-195"></span><span>        </span><span id="local-6989586621680851102"><span class="annot"><span class="annottext">args' :: [Expr b]
</span><a href="#local-6989586621680851102"><span class="hs-identifier hs-var hs-var">args'</span></a></span></span><span>
</span><span id="line-196"></span><span>          </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680851115"><span class="hs-identifier hs-var">supp_ty_app</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Expr b]
</span><a href="#local-6989586621680851108"><span class="hs-identifier hs-var">val_args</span></a></span><span>
</span><span id="line-197"></span><span>          </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Expr b]
</span><a href="#local-6989586621680851112"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-198"></span><span>        </span><span id="local-6989586621680851100"><span class="annot"><span class="annottext">parens :: SDoc -&gt; SDoc
</span><a href="#local-6989586621680851100"><span class="hs-identifier hs-var hs-var">parens</span></a></span></span><span>
</span><span id="line-199"></span><span>          </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">[Expr b] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[Expr b]
</span><a href="#local-6989586621680851102"><span class="hs-identifier hs-var">args'</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
forall a. a -&gt; a
</span><a href="../../base/src/GHC.Base.html#id"><span class="hs-identifier hs-var">id</span></a></span><span>
</span><span id="line-200"></span><span>          </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851119"><span class="hs-identifier hs-var">add_par</span></a></span><span>
</span><span id="line-201"></span><span>    </span><span class="hs-keyword">in</span><span>
</span><span id="line-202"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851113"><span class="hs-identifier hs-var">fun</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-203"></span><span>        </span><span class="annot"><a href="GHC.Core.html#Var"><span class="hs-identifier hs-type">Var</span></a></span><span> </span><span id="local-6989586621680851097"><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680851097"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Id -&gt; Maybe DataCon
</span><a href="GHC.Types.Id.html#isDataConWorkId_maybe"><span class="hs-identifier hs-var">isDataConWorkId_maybe</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680851097"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-204"></span><span>                        </span><span class="hs-comment">-- Notice that we print the *worker*</span><span>
</span><span id="line-205"></span><span>                        </span><span class="hs-comment">-- for tuples in paren'd format.</span><span>
</span><span id="line-206"></span><span>                   </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621680851095"><span class="annot"><span class="annottext">DataCon
</span><a href="#local-6989586621680851095"><span class="hs-identifier hs-var">dc</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680851094"><span class="hs-identifier hs-var">saturated</span></a></span><span>
</span><span id="line-207"></span><span>                           </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621680851093"><span class="annot"><span class="annottext">TupleSort
</span><a href="#local-6989586621680851093"><span class="hs-identifier hs-var">sort</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TyCon -&gt; Maybe TupleSort
</span><a href="GHC.Core.TyCon.html#tyConTuple_maybe"><span class="hs-identifier hs-var">tyConTuple_maybe</span></a></span><span> </span><span class="annot"><span class="annottext">TyCon
</span><a href="#local-6989586621680851091"><span class="hs-identifier hs-var">tc</span></a></span><span>
</span><span id="line-208"></span><span>                           </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">TupleSort -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Types.Basic.html#tupleParens"><span class="hs-identifier hs-var">tupleParens</span></a></span><span> </span><span class="annot"><span class="annottext">TupleSort
</span><a href="#local-6989586621680851093"><span class="hs-identifier hs-var">sort</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680851104"><span class="hs-identifier hs-var">pp_tup_args</span></a></span><span>
</span><span id="line-209"></span><span>                           </span><span class="hs-keyword">where</span><span>
</span><span id="line-210"></span><span>                             </span><span id="local-6989586621680851091"><span class="annot"><span class="annottext">tc :: TyCon
</span><a href="#local-6989586621680851091"><span class="hs-identifier hs-var hs-var">tc</span></a></span></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DataCon -&gt; TyCon
</span><a href="GHC.Core.DataCon.html#dataConTyCon"><span class="hs-identifier hs-var">dataConTyCon</span></a></span><span> </span><span class="annot"><span class="annottext">DataCon
</span><a href="#local-6989586621680851095"><span class="hs-identifier hs-var">dc</span></a></span><span>
</span><span id="line-211"></span><span>                             </span><span id="local-6989586621680851094"><span class="annot"><span class="annottext">saturated :: Bool
</span><a href="#local-6989586621680851094"><span class="hs-identifier hs-var hs-var">saturated</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Expr b]
</span><a href="#local-6989586621680851108"><span class="hs-identifier hs-var">val_args</span></a></span><span> </span><span class="annot"><span class="annottext">[Expr b] -&gt; Int -&gt; Bool
forall a. [a] -&gt; Int -&gt; Bool
</span><a href="GHC.Utils.Misc.html#lengthIs"><span class="hs-operator hs-var">`lengthIs`</span></a></span><span> </span><span class="annot"><span class="annottext">Id -&gt; Int
</span><a href="GHC.Types.Id.html#idArity"><span class="hs-identifier hs-var">idArity</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680851097"><span class="hs-identifier hs-var">f</span></a></span><span>
</span><span id="line-212"></span><span>
</span><span id="line-213"></span><span>                   </span><span class="annot"><span class="annottext">Maybe DataCon
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851100"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hang"><span class="hs-identifier hs-var">hang</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680851086"><span class="hs-identifier hs-var">fun_doc</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680851110"><span class="hs-identifier hs-var">pp_args</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-214"></span><span>                   </span><span class="hs-keyword">where</span><span>
</span><span id="line-215"></span><span>                     </span><span id="local-6989586621680851086"><span class="annot"><span class="annottext">fun_doc :: SDoc
</span><a href="#local-6989586621680851086"><span class="hs-identifier hs-var hs-var">fun_doc</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Id -&gt; Bool
</span><a href="GHC.Types.Id.html#isJoinId"><span class="hs-identifier hs-var">isJoinId</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680851097"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;jump&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Id -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680851097"><span class="hs-identifier hs-var">f</span></a></span><span>
</span><span id="line-216"></span><span>                             </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Id -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680851097"><span class="hs-identifier hs-var">f</span></a></span><span>
</span><span id="line-217"></span><span>
</span><span id="line-218"></span><span>        </span><span class="annot"><span class="annottext">Expr b
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851100"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hang"><span class="hs-identifier hs-var">hang</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Expr b -&gt; SDoc
forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprParendExpr"><span class="hs-identifier hs-var">pprParendExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851113"><span class="hs-identifier hs-var">fun</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680851110"><span class="hs-identifier hs-var">pp_args</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-219"></span><span>    </span><span class="hs-special">}</span><span>
</span><span id="line-220"></span><span>
</span><span id="line-221"></span><span class="annot"><a href="GHC.Core.Ppr.html#ppr_expr"><span class="hs-identifier hs-var">ppr_expr</span></a></span><span> </span><span id="local-6989586621680851083"><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851083"><span class="hs-identifier hs-var">add_par</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Case"><span class="hs-identifier hs-type">Case</span></a></span><span> </span><span id="local-6989586621680851081"><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851081"><span class="hs-identifier hs-var">expr</span></a></span></span><span> </span><span id="local-6989586621680851080"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680851080"><span class="hs-identifier hs-var">var</span></a></span></span><span> </span><span id="local-6989586621680851079"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621680851079"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span id="local-6989586621680851078"><span class="annot"><span class="annottext">AltCon
</span><a href="#local-6989586621680851078"><span class="hs-identifier hs-var">con</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680851077"><span class="annot"><span class="annottext">[b]
</span><a href="#local-6989586621680851077"><span class="hs-identifier hs-var">args</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680851076"><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851076"><span class="hs-identifier hs-var">rhs</span></a></span></span><span class="hs-special">)</span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-222"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Bool) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a. (SDocContext -&gt; a) -&gt; (a -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocOption"><span class="hs-identifier hs-var">sdocOption</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocPrintCaseAsLet"><span class="hs-identifier hs-var hs-var">sdocPrintCaseAsLet</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; SDoc) -&gt; SDoc) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span class="hs-glyph">case</span><span>
</span><span id="line-223"></span><span>      </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851083"><span class="hs-identifier hs-var">add_par</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>  </span><span class="hs-comment">-- See Note [Print case as let]</span><span>
</span><span id="line-224"></span><span>               </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;let! {&quot;</span></span><span>
</span><span id="line-225"></span><span>                           </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">AltCon -&gt; [b] -&gt; SDoc
forall a. OutputableBndr a =&gt; AltCon -&gt; [a] -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppr_case_pat"><span class="hs-identifier hs-var">ppr_case_pat</span></a></span><span> </span><span class="annot"><span class="annottext">AltCon
</span><a href="#local-6989586621680851078"><span class="hs-identifier hs-var">con</span></a></span><span> </span><span class="annot"><span class="annottext">[b]
</span><a href="#local-6989586621680851077"><span class="hs-identifier hs-var">args</span></a></span><span>
</span><span id="line-226"></span><span>                           </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;~&quot;</span></span><span>
</span><span id="line-227"></span><span>                           </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">b -&gt; SDoc
</span><a href="#local-6989586621680851073"><span class="hs-identifier hs-var">ppr_bndr</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680851080"><span class="hs-identifier hs-var">var</span></a></span><span>
</span><span id="line-228"></span><span>                         </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&lt;-&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; Expr b -&gt; SDoc
forall b. OutputableBndr b =&gt; (SDoc -&gt; SDoc) -&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppr_expr"><span class="hs-identifier hs-var">ppr_expr</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
forall a. a -&gt; a
</span><a href="../../base/src/GHC.Base.html#id"><span class="hs-identifier hs-var">id</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851081"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-229"></span><span>                           </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;} in&quot;</span></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-230"></span><span>                   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Expr b -&gt; SDoc
forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreExpr"><span class="hs-identifier hs-var">pprCoreExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851076"><span class="hs-identifier hs-var">rhs</span></a></span><span>
</span><span id="line-231"></span><span>                   </span><span class="hs-special">]</span><span>
</span><span id="line-232"></span><span>      </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851083"><span class="hs-identifier hs-var">add_par</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-233"></span><span>                </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;case&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b -&gt; SDoc
forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreExpr"><span class="hs-identifier hs-var">pprCoreExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851081"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-234"></span><span>                              </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#whenPprDebug"><span class="hs-identifier hs-var">whenPprDebug</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;return&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621680851079"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-235"></span><span>                              </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;of&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">b -&gt; SDoc
</span><a href="#local-6989586621680851073"><span class="hs-identifier hs-var">ppr_bndr</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680851080"><span class="hs-identifier hs-var">var</span></a></span><span>
</span><span id="line-236"></span><span>                              </span><span class="hs-special">]</span><span>
</span><span id="line-237"></span><span>                         </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'{'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">AltCon -&gt; [b] -&gt; SDoc
forall a. OutputableBndr a =&gt; AltCon -&gt; [a] -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppr_case_pat"><span class="hs-identifier hs-var">ppr_case_pat</span></a></span><span> </span><span class="annot"><span class="annottext">AltCon
</span><a href="#local-6989586621680851078"><span class="hs-identifier hs-var">con</span></a></span><span> </span><span class="annot"><span class="annottext">[b]
</span><a href="#local-6989586621680851077"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#arrow"><span class="hs-identifier hs-var">arrow</span></a></span><span>
</span><span id="line-238"></span><span>                         </span><span class="hs-special">]</span><span>
</span><span id="line-239"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Expr b -&gt; SDoc
forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreExpr"><span class="hs-identifier hs-var">pprCoreExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851076"><span class="hs-identifier hs-var">rhs</span></a></span><span>
</span><span id="line-240"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'}'</span></span><span>
</span><span id="line-241"></span><span>                     </span><span class="hs-special">]</span><span>
</span><span id="line-242"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-243"></span><span>    </span><span id="local-6989586621680851073"><span class="annot"><span class="annottext">ppr_bndr :: b -&gt; SDoc
</span><a href="#local-6989586621680851073"><span class="hs-identifier hs-var hs-var">ppr_bndr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BindingSite -&gt; b -&gt; SDoc
forall a. OutputableBndr a =&gt; BindingSite -&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprBndr"><span class="hs-identifier hs-var">pprBndr</span></a></span><span> </span><span class="annot"><span class="annottext">BindingSite
</span><a href="GHC.Utils.Outputable.html#CaseBind"><span class="hs-identifier hs-var">CaseBind</span></a></span><span>
</span><span id="line-244"></span><span>
</span><span id="line-245"></span><span class="annot"><a href="GHC.Core.Ppr.html#ppr_expr"><span class="hs-identifier hs-var">ppr_expr</span></a></span><span> </span><span id="local-6989586621680851068"><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851068"><span class="hs-identifier hs-var">add_par</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Case"><span class="hs-identifier hs-type">Case</span></a></span><span> </span><span id="local-6989586621680851067"><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851067"><span class="hs-identifier hs-var">expr</span></a></span></span><span> </span><span id="local-6989586621680851066"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680851066"><span class="hs-identifier hs-var">var</span></a></span></span><span> </span><span id="local-6989586621680851065"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621680851065"><span class="hs-identifier hs-var">ty</span></a></span></span><span> </span><span id="local-6989586621680851064"><span class="annot"><span class="annottext">[Alt b]
</span><a href="#local-6989586621680851064"><span class="hs-identifier hs-var">alts</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-246"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851068"><span class="hs-identifier hs-var">add_par</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-247"></span><span>    </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;case&quot;</span></span><span>
</span><span id="line-248"></span><span>                </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b -&gt; SDoc
forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreExpr"><span class="hs-identifier hs-var">pprCoreExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851067"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-249"></span><span>                </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#whenPprDebug"><span class="hs-identifier hs-var">whenPprDebug</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;return&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621680851065"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-250"></span><span>              </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;of&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">b -&gt; SDoc
</span><a href="#local-6989586621680851063"><span class="hs-identifier hs-var">ppr_bndr</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680851066"><span class="hs-identifier hs-var">var</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'{'</span></span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-251"></span><span>         </span><span class="annot"><span class="annottext">Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
</span><a href="GHC.Utils.Outputable.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#semi"><span class="hs-identifier hs-var">semi</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Alt b -&gt; SDoc) -&gt; [Alt b] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Alt b -&gt; SDoc
forall a. OutputableBndr a =&gt; (AltCon, [a], Expr a) -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreAlt"><span class="hs-identifier hs-var">pprCoreAlt</span></a></span><span> </span><span class="annot"><span class="annottext">[Alt b]
</span><a href="#local-6989586621680851064"><span class="hs-identifier hs-var">alts</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-252"></span><span>         </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'}'</span></span><span>
</span><span id="line-253"></span><span>    </span><span class="hs-special">]</span><span>
</span><span id="line-254"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-255"></span><span>    </span><span id="local-6989586621680851063"><span class="annot"><span class="annottext">ppr_bndr :: b -&gt; SDoc
</span><a href="#local-6989586621680851063"><span class="hs-identifier hs-var hs-var">ppr_bndr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BindingSite -&gt; b -&gt; SDoc
forall a. OutputableBndr a =&gt; BindingSite -&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprBndr"><span class="hs-identifier hs-var">pprBndr</span></a></span><span> </span><span class="annot"><span class="annottext">BindingSite
</span><a href="GHC.Utils.Outputable.html#CaseBind"><span class="hs-identifier hs-var">CaseBind</span></a></span><span>
</span><span id="line-256"></span><span>
</span><span id="line-257"></span><span>
</span><span id="line-258"></span><span class="hs-comment">-- special cases: let ... in let ...</span><span>
</span><span id="line-259"></span><span class="hs-comment">-- (&quot;disgusting&quot; SLPJ)</span><span>
</span><span id="line-260"></span><span>
</span><span id="line-261"></span><span class="hs-comment">{-
ppr_expr add_par (Let bind@(NonRec val_bdr rhs@(Let _ _)) body)
  = add_par $
    vcat [
      hsep [text &quot;let {&quot;, (pprBndr LetBind val_bdr $$ ppr val_bndr), equals],
      nest 2 (pprCoreExpr rhs),
      text &quot;} in&quot;,
      pprCoreExpr body ]

ppr_expr add_par (Let bind@(NonRec val_bdr rhs) expr@(Let _ _))
  = add_par
    (hang (text &quot;let {&quot;)
          2 (hsep [ppr_binding (val_bdr,rhs),
                   text &quot;} in&quot;])
     $$
     pprCoreExpr expr)
-}</span><span>
</span><span id="line-278"></span><span>
</span><span id="line-279"></span><span>
</span><span id="line-280"></span><span class="hs-comment">-- General case (recursive case, too)</span><span>
</span><span id="line-281"></span><span class="annot"><a href="GHC.Core.Ppr.html#ppr_expr"><span class="hs-identifier hs-var">ppr_expr</span></a></span><span> </span><span id="local-6989586621680851059"><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851059"><span class="hs-identifier hs-var">add_par</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Let"><span class="hs-identifier hs-type">Let</span></a></span><span> </span><span id="local-6989586621680851057"><span class="annot"><span class="annottext">Bind b
</span><a href="#local-6989586621680851057"><span class="hs-identifier hs-var">bind</span></a></span></span><span> </span><span id="local-6989586621680851056"><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851056"><span class="hs-identifier hs-var">expr</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-282"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851059"><span class="hs-identifier hs-var">add_par</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-283"></span><span>    </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">SDoc -&gt; Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hang"><span class="hs-identifier hs-var">hang</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bind b -&gt; SDoc
forall b. OutputableBndr b =&gt; Bind b -&gt; SDoc
</span><a href="#local-6989586621680851055"><span class="hs-identifier hs-var">keyword</span></a></span><span> </span><span class="annot"><span class="annottext">Bind b
</span><a href="#local-6989586621680851057"><span class="hs-identifier hs-var">bind</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'{'</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Expr b -&gt; SDoc) -&gt; Bind b -&gt; SDoc
forall a. OutputableBndr a =&gt; Annotation a -&gt; Bind a -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppr_bind"><span class="hs-identifier hs-var">ppr_bind</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b -&gt; SDoc
forall b. Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#noAnn"><span class="hs-identifier hs-var">noAnn</span></a></span><span> </span><span class="annot"><span class="annottext">Bind b
</span><a href="#local-6989586621680851057"><span class="hs-identifier hs-var">bind</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;} in&quot;</span></span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-284"></span><span>         </span><span class="annot"><span class="annottext">Expr b -&gt; SDoc
forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreExpr"><span class="hs-identifier hs-var">pprCoreExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851056"><span class="hs-identifier hs-var">expr</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-285"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-286"></span><span>    </span><span id="local-6989586621680851055"><span class="annot"><span class="annottext">keyword :: Bind a -&gt; SDoc
</span><a href="#local-6989586621680851055"><span class="hs-identifier hs-var hs-var">keyword</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#NonRec"><span class="hs-identifier hs-type">NonRec</span></a></span><span> </span><span id="local-6989586621680851051"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680851051"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="annot"><span class="annottext">Expr a
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>
</span><span id="line-287"></span><span>     </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Maybe Int -&gt; Bool
forall a. Maybe a -&gt; Bool
</span><a href="../../base/src/Data.Maybe.html#isJust"><span class="hs-identifier hs-var">isJust</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; Maybe Int
forall a. OutputableBndr a =&gt; a -&gt; Maybe Int
</span><a href="GHC.Utils.Outputable.html#bndrIsJoin_maybe"><span class="hs-identifier hs-var">bndrIsJoin_maybe</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680851051"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;join&quot;</span></span><span>
</span><span id="line-288"></span><span>     </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>                   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;let&quot;</span></span><span>
</span><span id="line-289"></span><span>    </span><span class="annot"><a href="#local-6989586621680851055"><span class="hs-identifier hs-var">keyword</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Rec"><span class="hs-identifier hs-type">Rec</span></a></span><span> </span><span id="local-6989586621680851049"><span class="annot"><span class="annottext">[(a, Expr a)]
</span><a href="#local-6989586621680851049"><span class="hs-identifier hs-var">pairs</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-290"></span><span>     </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span id="local-6989586621680851048"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680851048"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Expr a
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span class="annot"><span class="annottext">[(a, Expr a)]
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[(a, Expr a)]
</span><a href="#local-6989586621680851049"><span class="hs-identifier hs-var">pairs</span></a></span><span>
</span><span id="line-291"></span><span>     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Maybe Int -&gt; Bool
forall a. Maybe a -&gt; Bool
</span><a href="../../base/src/Data.Maybe.html#isJust"><span class="hs-identifier hs-var">isJust</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; Maybe Int
forall a. OutputableBndr a =&gt; a -&gt; Maybe Int
</span><a href="GHC.Utils.Outputable.html#bndrIsJoin_maybe"><span class="hs-identifier hs-var">bndrIsJoin_maybe</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680851048"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;joinrec&quot;</span></span><span>
</span><span id="line-292"></span><span>     </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>                   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;letrec&quot;</span></span><span>
</span><span id="line-293"></span><span>
</span><span id="line-294"></span><span class="annot"><a href="GHC.Core.Ppr.html#ppr_expr"><span class="hs-identifier hs-var">ppr_expr</span></a></span><span> </span><span id="local-6989586621680851047"><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851047"><span class="hs-identifier hs-var">add_par</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Tick"><span class="hs-identifier hs-type">Tick</span></a></span><span> </span><span id="local-6989586621680851045"><span class="annot"><span class="annottext">Tickish Id
</span><a href="#local-6989586621680851045"><span class="hs-identifier hs-var">tickish</span></a></span></span><span> </span><span id="local-6989586621680851044"><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851044"><span class="hs-identifier hs-var">expr</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-295"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Bool) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a. (SDocContext -&gt; a) -&gt; (a -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocOption"><span class="hs-identifier hs-var">sdocOption</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressTicks"><span class="hs-identifier hs-var hs-var">sdocSuppressTicks</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; SDoc) -&gt; SDoc) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span class="hs-glyph">case</span><span>
</span><span id="line-296"></span><span>      </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; Expr b -&gt; SDoc
forall b. OutputableBndr b =&gt; (SDoc -&gt; SDoc) -&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppr_expr"><span class="hs-identifier hs-var">ppr_expr</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851047"><span class="hs-identifier hs-var">add_par</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851044"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-297"></span><span>      </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621680851047"><span class="hs-identifier hs-var">add_par</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Tickish Id -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Tickish Id
</span><a href="#local-6989586621680851045"><span class="hs-identifier hs-var">tickish</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Expr b -&gt; SDoc
forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreExpr"><span class="hs-identifier hs-var">pprCoreExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Expr b
</span><a href="#local-6989586621680851044"><span class="hs-identifier hs-var">expr</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-298"></span><span>
</span><span id="line-299"></span><span id="local-6989586621680851390"><span class="annot"><a href="GHC.Core.Ppr.html#pprCoreAlt"><span class="hs-identifier hs-type">pprCoreAlt</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier hs-type">OutputableBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851390"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#AltCon"><span class="hs-identifier hs-type">AltCon</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680851390"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Core.html#Expr"><span class="hs-identifier hs-type">Expr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851390"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-300"></span><span id="pprCoreAlt"><span class="annot"><span class="annottext">pprCoreAlt :: forall a. OutputableBndr a =&gt; (AltCon, [a], Expr a) -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreAlt"><span class="hs-identifier hs-var hs-var">pprCoreAlt</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621680851039"><span class="annot"><span class="annottext">AltCon
</span><a href="#local-6989586621680851039"><span class="hs-identifier hs-var">con</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680851038"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680851038"><span class="hs-identifier hs-var">args</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680851037"><span class="annot"><span class="annottext">Expr a
</span><a href="#local-6989586621680851037"><span class="hs-identifier hs-var">rhs</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-301"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hang"><span class="hs-identifier hs-var">hang</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">AltCon -&gt; [a] -&gt; SDoc
forall a. OutputableBndr a =&gt; AltCon -&gt; [a] -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppr_case_pat"><span class="hs-identifier hs-var">ppr_case_pat</span></a></span><span> </span><span class="annot"><span class="annottext">AltCon
</span><a href="#local-6989586621680851039"><span class="hs-identifier hs-var">con</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680851038"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#arrow"><span class="hs-identifier hs-var">arrow</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Expr a -&gt; SDoc
forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreExpr"><span class="hs-identifier hs-var">pprCoreExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Expr a
</span><a href="#local-6989586621680851037"><span class="hs-identifier hs-var">rhs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-302"></span><span>
</span><span id="line-303"></span><span id="local-6989586621680851391"><span class="annot"><a href="GHC.Core.Ppr.html#ppr_case_pat"><span class="hs-identifier hs-type">ppr_case_pat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier hs-type">OutputableBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851391"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Core.html#AltCon"><span class="hs-identifier hs-type">AltCon</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621680851391"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-304"></span><span id="ppr_case_pat"><span class="annot"><span class="annottext">ppr_case_pat :: forall a. OutputableBndr a =&gt; AltCon -&gt; [a] -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppr_case_pat"><span class="hs-identifier hs-var hs-var">ppr_case_pat</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#DataAlt"><span class="hs-identifier hs-type">DataAlt</span></a></span><span> </span><span id="local-6989586621680851032"><span class="annot"><span class="annottext">DataCon
</span><a href="#local-6989586621680851032"><span class="hs-identifier hs-var">dc</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680851031"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680851031"><span class="hs-identifier hs-var">args</span></a></span></span><span>
</span><span id="line-305"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621680851030"><span class="annot"><span class="annottext">TupleSort
</span><a href="#local-6989586621680851030"><span class="hs-identifier hs-var">sort</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">TyCon -&gt; Maybe TupleSort
</span><a href="GHC.Core.TyCon.html#tyConTuple_maybe"><span class="hs-identifier hs-var">tyConTuple_maybe</span></a></span><span> </span><span class="annot"><span class="annottext">TyCon
</span><a href="#local-6989586621680851029"><span class="hs-identifier hs-var">tc</span></a></span><span>
</span><span id="line-306"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TupleSort -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Types.Basic.html#tupleParens"><span class="hs-identifier hs-var">tupleParens</span></a></span><span> </span><span class="annot"><span class="annottext">TupleSort
</span><a href="#local-6989586621680851030"><span class="hs-identifier hs-var">sort</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; [a] -&gt; SDoc
forall a. (a -&gt; SDoc) -&gt; [a] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprWithCommas"><span class="hs-identifier hs-var">pprWithCommas</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
</span><a href="#local-6989586621680851028"><span class="hs-identifier hs-var">ppr_bndr</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680851031"><span class="hs-identifier hs-var">args</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-307"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-308"></span><span>    </span><span id="local-6989586621680851028"><span class="annot"><span class="annottext">ppr_bndr :: a -&gt; SDoc
</span><a href="#local-6989586621680851028"><span class="hs-identifier hs-var hs-var">ppr_bndr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BindingSite -&gt; a -&gt; SDoc
forall a. OutputableBndr a =&gt; BindingSite -&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprBndr"><span class="hs-identifier hs-var">pprBndr</span></a></span><span> </span><span class="annot"><span class="annottext">BindingSite
</span><a href="GHC.Utils.Outputable.html#CasePatBind"><span class="hs-identifier hs-var">CasePatBind</span></a></span><span>
</span><span id="line-309"></span><span>    </span><span id="local-6989586621680851029"><span class="annot"><span class="annottext">tc :: TyCon
</span><a href="#local-6989586621680851029"><span class="hs-identifier hs-var hs-var">tc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DataCon -&gt; TyCon
</span><a href="GHC.Core.DataCon.html#dataConTyCon"><span class="hs-identifier hs-var">dataConTyCon</span></a></span><span> </span><span class="annot"><span class="annottext">DataCon
</span><a href="#local-6989586621680851032"><span class="hs-identifier hs-var">dc</span></a></span><span>
</span><span id="line-310"></span><span>
</span><span id="line-311"></span><span class="annot"><a href="GHC.Core.Ppr.html#ppr_case_pat"><span class="hs-identifier hs-var">ppr_case_pat</span></a></span><span> </span><span id="local-6989586621680851025"><span class="annot"><span class="annottext">AltCon
</span><a href="#local-6989586621680851025"><span class="hs-identifier hs-var">con</span></a></span></span><span> </span><span id="local-6989586621680851024"><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680851024"><span class="hs-identifier hs-var">args</span></a></span></span><span>
</span><span id="line-312"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">AltCon -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">AltCon
</span><a href="#local-6989586621680851025"><span class="hs-identifier hs-var">con</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#fsep"><span class="hs-identifier hs-var">fsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; SDoc) -&gt; [a] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; SDoc
</span><a href="#local-6989586621680851022"><span class="hs-identifier hs-var">ppr_bndr</span></a></span><span> </span><span class="annot"><span class="annottext">[a]
</span><a href="#local-6989586621680851024"><span class="hs-identifier hs-var">args</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-313"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-314"></span><span>    </span><span id="local-6989586621680851022"><span class="annot"><span class="annottext">ppr_bndr :: a -&gt; SDoc
</span><a href="#local-6989586621680851022"><span class="hs-identifier hs-var hs-var">ppr_bndr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BindingSite -&gt; a -&gt; SDoc
forall a. OutputableBndr a =&gt; BindingSite -&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprBndr"><span class="hs-identifier hs-var">pprBndr</span></a></span><span> </span><span class="annot"><span class="annottext">BindingSite
</span><a href="GHC.Utils.Outputable.html#CasePatBind"><span class="hs-identifier hs-var">CasePatBind</span></a></span><span>
</span><span id="line-315"></span><span>
</span><span id="line-316"></span><span>
</span><span id="line-317"></span><span class="hs-comment">-- | Pretty print the argument in a function application.</span><span>
</span><span id="line-318"></span><span id="local-6989586621680851020"><span class="annot"><a href="GHC.Core.Ppr.html#pprArg"><span class="hs-identifier hs-type">pprArg</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier hs-type">OutputableBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851020"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Core.html#Expr"><span class="hs-identifier hs-type">Expr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851020"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span></span><span>
</span><span id="line-319"></span><span id="pprArg"><span class="annot"><span class="annottext">pprArg :: forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprArg"><span class="hs-identifier hs-var hs-var">pprArg</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Type"><span class="hs-identifier hs-type">Type</span></a></span><span> </span><span id="local-6989586621680851017"><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621680851017"><span class="hs-identifier hs-var">ty</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-320"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Bool) -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppUnlessOption"><span class="hs-identifier hs-var">ppUnlessOption</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressTypeApplications"><span class="hs-identifier hs-var hs-var">sdocSuppressTypeApplications</span></a></span><span>
</span><span id="line-321"></span><span>      </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;@&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; SDoc
</span><a href="GHC.Core.TyCo.Ppr.html#pprParendType"><span class="hs-identifier hs-var">pprParendType</span></a></span><span> </span><span class="annot"><span class="annottext">Type
</span><a href="#local-6989586621680851017"><span class="hs-identifier hs-var">ty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-322"></span><span class="annot"><a href="GHC.Core.Ppr.html#pprArg"><span class="hs-identifier hs-var">pprArg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Coercion"><span class="hs-identifier hs-type">Coercion</span></a></span><span> </span><span id="local-6989586621680851015"><span class="annot"><span class="annottext">Coercion
</span><a href="#local-6989586621680851015"><span class="hs-identifier hs-var">co</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;@~&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Coercion -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprOptCo"><span class="hs-identifier hs-var">pprOptCo</span></a></span><span> </span><span class="annot"><span class="annottext">Coercion
</span><a href="#local-6989586621680851015"><span class="hs-identifier hs-var">co</span></a></span><span>
</span><span id="line-323"></span><span class="annot"><a href="GHC.Core.Ppr.html#pprArg"><span class="hs-identifier hs-var">pprArg</span></a></span><span> </span><span id="local-6989586621680851014"><span class="annot"><span class="annottext">Expr a
</span><a href="#local-6989586621680851014"><span class="hs-identifier hs-var">expr</span></a></span></span><span>          </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Expr a -&gt; SDoc
forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprParendExpr"><span class="hs-identifier hs-var">pprParendExpr</span></a></span><span> </span><span class="annot"><span class="annottext">Expr a
</span><a href="#local-6989586621680851014"><span class="hs-identifier hs-var">expr</span></a></span><span>
</span><span id="line-324"></span><span>
</span><span id="line-325"></span><span class="hs-comment">{-
Note [Print case as let]
~~~~~~~~~~~~~~~~~~~~~~~~
Single-branch case expressions are very common:
   case x of y { I# x' -&gt;
   case p of q { I# p' -&gt; ... } }
These are, in effect, just strict let's, with pattern matching.
With -dppr-case-as-let we print them as such:
   let! { I# x' ~ y &lt;- x } in
   let! { I# p' ~ q &lt;- p } in ...


Other printing bits-and-bobs used with the general @pprCoreBinding@
and @pprCoreExpr@ functions.


Note [Binding-site specific printing]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

pprCoreBinder and pprTypedLamBinder receive a BindingSite argument to adjust
the information printed.

Let-bound binders are printed with their full type and idInfo.

Case-bound variables (both the case binder and pattern variables) are printed
without a type and without their unfolding.

Furthermore, a dead case-binder is completely ignored, while otherwise, dead
binders are printed as &quot;_&quot;.
-}</span><span>
</span><span id="line-355"></span><span>
</span><span id="line-356"></span><span class="hs-comment">-- These instances are sadly orphans</span><span>
</span><span id="line-357"></span><span>
</span><span id="line-358"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier hs-type">OutputableBndr</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Var.html#Var"><span class="hs-identifier hs-type">Var</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-359"></span><span>  </span><span id="local-6989586621680851005"><span class="annot"><span class="annottext">pprBndr :: BindingSite -&gt; Id -&gt; SDoc
</span><a href="#local-6989586621680851005"><span class="hs-identifier hs-var hs-var hs-var hs-var">pprBndr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BindingSite -&gt; Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreBinder"><span class="hs-identifier hs-var">pprCoreBinder</span></a></span><span>
</span><span id="line-360"></span><span>  </span><span id="local-6989586621680851000"><span class="annot"><span class="annottext">pprInfixOcc :: Id -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprInfixOcc"><span class="hs-identifier hs-var hs-var hs-var hs-var">pprInfixOcc</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; SDoc
forall a. (Outputable a, NamedThing a) =&gt; a -&gt; SDoc
</span><a href="GHC.Types.Name.html#pprInfixName"><span class="hs-identifier hs-var">pprInfixName</span></a></span><span>  </span><span class="annot"><span class="annottext">(Name -&gt; SDoc) -&gt; (Id -&gt; Name) -&gt; Id -&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Id -&gt; Name
</span><a href="GHC.Types.Var.html#varName"><span class="hs-identifier hs-var hs-var">varName</span></a></span><span>
</span><span id="line-361"></span><span>  </span><span id="local-6989586621680850995"><span class="annot"><span class="annottext">pprPrefixOcc :: Id -&gt; SDoc
</span><a href="#local-6989586621680850995"><span class="hs-identifier hs-var hs-var hs-var hs-var">pprPrefixOcc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Name -&gt; SDoc
forall a. NamedThing a =&gt; a -&gt; SDoc
</span><a href="GHC.Types.Name.html#pprPrefixName"><span class="hs-identifier hs-var">pprPrefixName</span></a></span><span> </span><span class="annot"><span class="annottext">(Name -&gt; SDoc) -&gt; (Id -&gt; Name) -&gt; Id -&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Id -&gt; Name
</span><a href="GHC.Types.Var.html#varName"><span class="hs-identifier hs-var hs-var">varName</span></a></span><span>
</span><span id="line-362"></span><span>  </span><span id="local-6989586621680850994"><span class="annot"><span class="annottext">bndrIsJoin_maybe :: Id -&gt; Maybe Int
</span><a href="#local-6989586621680850994"><span class="hs-identifier hs-var hs-var hs-var hs-var">bndrIsJoin_maybe</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Id -&gt; Maybe Int
</span><a href="GHC.Types.Id.html#isJoinId_maybe"><span class="hs-identifier hs-var">isJoinId_maybe</span></a></span><span>
</span><span id="line-363"></span><span>
</span><span id="line-364"></span><span id="local-6989586621680851376"><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851376"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#OutputableBndr"><span class="hs-identifier hs-type">OutputableBndr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#TaggedBndr"><span class="hs-identifier hs-type">TaggedBndr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851376"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-365"></span><span>  </span><span id="local-6989586621680850982"><span class="annot"><span class="annottext">pprBndr :: BindingSite -&gt; TaggedBndr b -&gt; SDoc
</span><a href="#local-6989586621680850982"><span class="hs-identifier hs-var hs-var hs-var hs-var">pprBndr</span></a></span></span><span> </span><span class="annot"><span class="annottext">BindingSite
</span><span class="hs-identifier">_</span></span><span>    </span><span id="local-6989586621680850981"><span class="annot"><span class="annottext">TaggedBndr b
</span><a href="#local-6989586621680850981"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TaggedBndr b -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">TaggedBndr b
</span><a href="#local-6989586621680850981"><span class="hs-identifier hs-var">b</span></a></span><span>   </span><span class="hs-comment">-- Simple</span><span>
</span><span id="line-366"></span><span>  </span><span id="local-6989586621680850979"><span class="annot"><span class="annottext">pprInfixOcc :: TaggedBndr b -&gt; SDoc
</span><a href="#local-6989586621680850979"><span class="hs-identifier hs-var hs-var hs-var hs-var">pprInfixOcc</span></a></span></span><span>  </span><span id="local-6989586621680850978"><span class="annot"><span class="annottext">TaggedBndr b
</span><a href="#local-6989586621680850978"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TaggedBndr b -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">TaggedBndr b
</span><a href="#local-6989586621680850978"><span class="hs-identifier hs-var">b</span></a></span><span>
</span><span id="line-367"></span><span>  </span><span id="local-6989586621680850976"><span class="annot"><span class="annottext">pprPrefixOcc :: TaggedBndr b -&gt; SDoc
</span><a href="#local-6989586621680850976"><span class="hs-identifier hs-var hs-var hs-var hs-var">pprPrefixOcc</span></a></span></span><span> </span><span id="local-6989586621680850975"><span class="annot"><span class="annottext">TaggedBndr b
</span><a href="#local-6989586621680850975"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TaggedBndr b -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">TaggedBndr b
</span><a href="#local-6989586621680850975"><span class="hs-identifier hs-var">b</span></a></span><span>
</span><span id="line-368"></span><span>  </span><span id="local-6989586621680850974"><span class="annot"><span class="annottext">bndrIsJoin_maybe :: TaggedBndr b -&gt; Maybe Int
</span><a href="#local-6989586621680850974"><span class="hs-identifier hs-var hs-var hs-var hs-var">bndrIsJoin_maybe</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#TB"><span class="hs-identifier hs-type">TB</span></a></span><span> </span><span id="local-6989586621680850972"><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850972"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="annot"><span class="annottext">b
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Id -&gt; Maybe Int
</span><a href="GHC.Types.Id.html#isJoinId_maybe"><span class="hs-identifier hs-var">isJoinId_maybe</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850972"><span class="hs-identifier hs-var">b</span></a></span></span><span>
</span><span id="line-369"></span><span>
</span><span id="line-370"></span><span class="annot"><a href="GHC.Core.Ppr.html#pprCoreBinder"><span class="hs-identifier hs-type">pprCoreBinder</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#BindingSite"><span class="hs-identifier hs-type">BindingSite</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Var.html#Var"><span class="hs-identifier hs-type">Var</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-371"></span><span id="pprCoreBinder"><span class="annot"><span class="annottext">pprCoreBinder :: BindingSite -&gt; Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreBinder"><span class="hs-identifier hs-var hs-var">pprCoreBinder</span></a></span></span><span> </span><span class="annot"><span class="annottext">BindingSite
</span><a href="GHC.Utils.Outputable.html#LetBind"><span class="hs-identifier hs-var">LetBind</span></a></span><span> </span><span id="local-6989586621680850971"><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850971"><span class="hs-identifier hs-var">binder</span></a></span></span><span>
</span><span id="line-372"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Id -&gt; Bool
</span><a href="GHC.Types.Var.html#isTyVar"><span class="hs-identifier hs-var">isTyVar</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850971"><span class="hs-identifier hs-var">binder</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprKindedTyVarBndr"><span class="hs-identifier hs-var">pprKindedTyVarBndr</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850971"><span class="hs-identifier hs-var">binder</span></a></span><span>
</span><span id="line-373"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprTypedLetBinder"><span class="hs-identifier hs-var">pprTypedLetBinder</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850971"><span class="hs-identifier hs-var">binder</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-374"></span><span>                     </span><span class="annot"><span class="annottext">Id -&gt; IdInfo -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppIdInfo"><span class="hs-identifier hs-var">ppIdInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850971"><span class="hs-identifier hs-var">binder</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HasDebugCallStack =&gt; Id -&gt; IdInfo
Id -&gt; IdInfo
</span><a href="GHC.Types.Var.html#idInfo"><span class="hs-identifier hs-var">idInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850971"><span class="hs-identifier hs-var">binder</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-375"></span><span>
</span><span id="line-376"></span><span class="hs-comment">-- Lambda bound type variables are preceded by &quot;@&quot;</span><span>
</span><span id="line-377"></span><span class="annot"><a href="GHC.Core.Ppr.html#pprCoreBinder"><span class="hs-identifier hs-var">pprCoreBinder</span></a></span><span> </span><span id="local-6989586621680850965"><span class="annot"><span class="annottext">BindingSite
</span><a href="#local-6989586621680850965"><span class="hs-identifier hs-var">bind_site</span></a></span></span><span> </span><span id="local-6989586621680850964"><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850964"><span class="hs-identifier hs-var">bndr</span></a></span></span><span>
</span><span id="line-378"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Bool -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#getPprDebug"><span class="hs-identifier hs-var">getPprDebug</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; SDoc) -&gt; SDoc) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680850962"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850962"><span class="hs-identifier hs-var">debug</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-379"></span><span>    </span><span class="annot"><span class="annottext">BindingSite -&gt; Bool -&gt; Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprTypedLamBinder"><span class="hs-identifier hs-var">pprTypedLamBinder</span></a></span><span> </span><span class="annot"><span class="annottext">BindingSite
</span><a href="#local-6989586621680850965"><span class="hs-identifier hs-var">bind_site</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850962"><span class="hs-identifier hs-var">debug</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850964"><span class="hs-identifier hs-var">bndr</span></a></span><span>
</span><span id="line-380"></span><span>
</span><span id="line-381"></span><span class="annot"><a href="GHC.Core.Ppr.html#pprUntypedBinder"><span class="hs-identifier hs-type">pprUntypedBinder</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Var.html#Var"><span class="hs-identifier hs-type">Var</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-382"></span><span id="pprUntypedBinder"><span class="annot"><span class="annottext">pprUntypedBinder :: Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprUntypedBinder"><span class="hs-identifier hs-var hs-var">pprUntypedBinder</span></a></span></span><span> </span><span id="local-6989586621680850959"><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850959"><span class="hs-identifier hs-var">binder</span></a></span></span><span>
</span><span id="line-383"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Id -&gt; Bool
</span><a href="GHC.Types.Var.html#isTyVar"><span class="hs-identifier hs-var">isTyVar</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850959"><span class="hs-identifier hs-var">binder</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;@&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Id -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850959"><span class="hs-identifier hs-var">binder</span></a></span><span>    </span><span class="hs-comment">-- NB: don't print kind</span><span>
</span><span id="line-384"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprIdBndr"><span class="hs-identifier hs-var">pprIdBndr</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850959"><span class="hs-identifier hs-var">binder</span></a></span><span>
</span><span id="line-385"></span><span>
</span><span id="line-386"></span><span class="annot"><a href="GHC.Core.Ppr.html#pprTypedLamBinder"><span class="hs-identifier hs-type">pprTypedLamBinder</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#BindingSite"><span class="hs-identifier hs-type">BindingSite</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Var.html#Var"><span class="hs-identifier hs-type">Var</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-387"></span><span class="hs-comment">-- For lambda and case binders, show the unfolding info (usually none)</span><span>
</span><span id="line-388"></span><span id="pprTypedLamBinder"><span class="annot"><span class="annottext">pprTypedLamBinder :: BindingSite -&gt; Bool -&gt; Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprTypedLamBinder"><span class="hs-identifier hs-var hs-var">pprTypedLamBinder</span></a></span></span><span> </span><span id="local-6989586621680850957"><span class="annot"><span class="annottext">BindingSite
</span><a href="#local-6989586621680850957"><span class="hs-identifier hs-var">bind_site</span></a></span></span><span> </span><span id="local-6989586621680850956"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850956"><span class="hs-identifier hs-var">debug_on</span></a></span></span><span> </span><span id="local-6989586621680850955"><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850955"><span class="hs-identifier hs-var">var</span></a></span></span><span>
</span><span id="line-389"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Bool) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a. (SDocContext -&gt; a) -&gt; (a -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocOption"><span class="hs-identifier hs-var">sdocOption</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressTypeSignatures"><span class="hs-identifier hs-var hs-var">sdocSuppressTypeSignatures</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; SDoc) -&gt; SDoc) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680850954"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850954"><span class="hs-identifier hs-var">suppress_sigs</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-390"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-391"></span><span>    </span><span class="annot"><span class="annottext">()
</span><span class="hs-identifier">_</span></span><span>
</span><span id="line-392"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850956"><span class="hs-identifier hs-var">debug_on</span></a></span><span>            </span><span class="hs-comment">-- Show case-bound wild binders only if debug is on</span><span>
</span><span id="line-393"></span><span>      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BindingSite
</span><a href="GHC.Utils.Outputable.html#CaseBind"><span class="hs-identifier hs-var">CaseBind</span></a></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">BindingSite
</span><a href="#local-6989586621680850957"><span class="hs-identifier hs-var">bind_site</span></a></span><span>
</span><span id="line-394"></span><span>      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Id -&gt; Bool
</span><a href="GHC.Types.Id.html#isDeadBinder"><span class="hs-identifier hs-var">isDeadBinder</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850955"><span class="hs-identifier hs-var">var</span></a></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-395"></span><span>
</span><span id="line-396"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850956"><span class="hs-identifier hs-var">debug_on</span></a></span><span>            </span><span class="hs-comment">-- Even dead binders can be one-shot</span><span>
</span><span id="line-397"></span><span>      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Id -&gt; Bool
</span><a href="GHC.Types.Id.html#isDeadBinder"><span class="hs-identifier hs-var">isDeadBinder</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850955"><span class="hs-identifier hs-var">var</span></a></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'_'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppWhen"><span class="hs-identifier hs-var">ppWhen</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Id -&gt; Bool
</span><a href="GHC.Types.Var.html#isId"><span class="hs-identifier hs-var">isId</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850955"><span class="hs-identifier hs-var">var</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-398"></span><span>                                                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IdInfo -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprIdBndrInfo"><span class="hs-identifier hs-var">pprIdBndrInfo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HasDebugCallStack =&gt; Id -&gt; IdInfo
Id -&gt; IdInfo
</span><a href="GHC.Types.Var.html#idInfo"><span class="hs-identifier hs-var">idInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850955"><span class="hs-identifier hs-var">var</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-399"></span><span>
</span><span id="line-400"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850956"><span class="hs-identifier hs-var">debug_on</span></a></span><span>            </span><span class="hs-comment">-- No parens, no kind info</span><span>
</span><span id="line-401"></span><span>      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BindingSite
</span><a href="GHC.Utils.Outputable.html#CaseBind"><span class="hs-identifier hs-var">CaseBind</span></a></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">BindingSite
</span><a href="#local-6989586621680850957"><span class="hs-identifier hs-var">bind_site</span></a></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprUntypedBinder"><span class="hs-identifier hs-var">pprUntypedBinder</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850955"><span class="hs-identifier hs-var">var</span></a></span><span>
</span><span id="line-402"></span><span>
</span><span id="line-403"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850956"><span class="hs-identifier hs-var">debug_on</span></a></span><span>
</span><span id="line-404"></span><span>      </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BindingSite
</span><a href="GHC.Utils.Outputable.html#CasePatBind"><span class="hs-identifier hs-var">CasePatBind</span></a></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">BindingSite
</span><a href="#local-6989586621680850957"><span class="hs-identifier hs-var">bind_site</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprUntypedBinder"><span class="hs-identifier hs-var">pprUntypedBinder</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850955"><span class="hs-identifier hs-var">var</span></a></span><span>
</span><span id="line-405"></span><span>
</span><span id="line-406"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850954"><span class="hs-identifier hs-var">suppress_sigs</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprUntypedBinder"><span class="hs-identifier hs-var">pprUntypedBinder</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850955"><span class="hs-identifier hs-var">var</span></a></span><span>
</span><span id="line-407"></span><span>
</span><span id="line-408"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Id -&gt; Bool
</span><a href="GHC.Types.Var.html#isTyVar"><span class="hs-identifier hs-var">isTyVar</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850955"><span class="hs-identifier hs-var">var</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprKindedTyVarBndr"><span class="hs-identifier hs-var">pprKindedTyVarBndr</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850955"><span class="hs-identifier hs-var">var</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-409"></span><span>
</span><span id="line-410"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hang"><span class="hs-identifier hs-var">hang</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprIdBndr"><span class="hs-identifier hs-var">pprIdBndr</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850955"><span class="hs-identifier hs-var">var</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-411"></span><span>                                   </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; SDoc
</span><a href="GHC.Core.TyCo.Ppr.html#pprType"><span class="hs-identifier hs-var">pprType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Id -&gt; Type
</span><a href="GHC.Types.Id.html#idType"><span class="hs-identifier hs-var">idType</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850955"><span class="hs-identifier hs-var">var</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-412"></span><span>                                           </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680850946"><span class="hs-identifier hs-var">pp_unf</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-413"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-414"></span><span>    </span><span id="local-6989586621680850944"><span class="annot"><span class="annottext">unf_info :: Unfolding
</span><a href="#local-6989586621680850944"><span class="hs-identifier hs-var hs-var">unf_info</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; Unfolding
</span><a href="GHC.Types.Id.Info.html#unfoldingInfo"><span class="hs-identifier hs-var hs-var">unfoldingInfo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HasDebugCallStack =&gt; Id -&gt; IdInfo
Id -&gt; IdInfo
</span><a href="GHC.Types.Var.html#idInfo"><span class="hs-identifier hs-var">idInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850955"><span class="hs-identifier hs-var">var</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-415"></span><span>    </span><span id="local-6989586621680850946"><span class="annot"><span class="annottext">pp_unf :: SDoc
</span><a href="#local-6989586621680850946"><span class="hs-identifier hs-var hs-var">pp_unf</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Unfolding -&gt; Bool
</span><a href="GHC.Core.html#hasSomeUnfolding"><span class="hs-identifier hs-var">hasSomeUnfolding</span></a></span><span> </span><span class="annot"><span class="annottext">Unfolding
</span><a href="#local-6989586621680850944"><span class="hs-identifier hs-var">unf_info</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Unf=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Unfolding -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Unfolding
</span><a href="#local-6989586621680850944"><span class="hs-identifier hs-var">unf_info</span></a></span><span>
</span><span id="line-416"></span><span>           </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>                 </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-417"></span><span>
</span><span id="line-418"></span><span class="annot"><a href="GHC.Core.Ppr.html#pprTypedLetBinder"><span class="hs-identifier hs-type">pprTypedLetBinder</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Var.html#Var"><span class="hs-identifier hs-type">Var</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-419"></span><span class="hs-comment">-- Print binder with a type or kind signature (not paren'd)</span><span>
</span><span id="line-420"></span><span id="pprTypedLetBinder"><span class="annot"><span class="annottext">pprTypedLetBinder :: Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprTypedLetBinder"><span class="hs-identifier hs-var hs-var">pprTypedLetBinder</span></a></span></span><span> </span><span id="local-6989586621680850940"><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850940"><span class="hs-identifier hs-var">binder</span></a></span></span><span>
</span><span id="line-421"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Bool) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a. (SDocContext -&gt; a) -&gt; (a -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocOption"><span class="hs-identifier hs-var">sdocOption</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressTypeSignatures"><span class="hs-identifier hs-var hs-var">sdocSuppressTypeSignatures</span></a></span><span> </span><span class="annot"><span class="annottext">((Bool -&gt; SDoc) -&gt; SDoc) -&gt; (Bool -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680850939"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850939"><span class="hs-identifier hs-var">suppress_sigs</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-422"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-423"></span><span>    </span><span class="annot"><span class="annottext">()
</span><span class="hs-identifier">_</span></span><span>
</span><span id="line-424"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Id -&gt; Bool
</span><a href="GHC.Types.Var.html#isTyVar"><span class="hs-identifier hs-var">isTyVar</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850940"><span class="hs-identifier hs-var">binder</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprKindedTyVarBndr"><span class="hs-identifier hs-var">pprKindedTyVarBndr</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850940"><span class="hs-identifier hs-var">binder</span></a></span><span>
</span><span id="line-425"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850939"><span class="hs-identifier hs-var">suppress_sigs</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprIdBndr"><span class="hs-identifier hs-var">pprIdBndr</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850940"><span class="hs-identifier hs-var">binder</span></a></span><span>
</span><span id="line-426"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hang"><span class="hs-identifier hs-var">hang</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprIdBndr"><span class="hs-identifier hs-var">pprIdBndr</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850940"><span class="hs-identifier hs-var">binder</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#dcolon"><span class="hs-identifier hs-var">dcolon</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Type -&gt; SDoc
</span><a href="GHC.Core.TyCo.Ppr.html#pprType"><span class="hs-identifier hs-var">pprType</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Id -&gt; Type
</span><a href="GHC.Types.Id.html#idType"><span class="hs-identifier hs-var">idType</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850940"><span class="hs-identifier hs-var">binder</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-427"></span><span>
</span><span id="line-428"></span><span class="annot"><a href="GHC.Core.Ppr.html#pprKindedTyVarBndr"><span class="hs-identifier hs-type">pprKindedTyVarBndr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Var.html#TyVar"><span class="hs-identifier hs-type">TyVar</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-429"></span><span class="hs-comment">-- Print a type variable binder with its kind (but not if *)</span><span>
</span><span id="line-430"></span><span id="pprKindedTyVarBndr"><span class="annot"><span class="annottext">pprKindedTyVarBndr :: Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprKindedTyVarBndr"><span class="hs-identifier hs-var hs-var">pprKindedTyVarBndr</span></a></span></span><span> </span><span id="local-6989586621680850937"><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850937"><span class="hs-identifier hs-var">tyvar</span></a></span></span><span>
</span><span id="line-431"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;@&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Id -&gt; SDoc
</span><a href="GHC.Core.TyCo.Ppr.html#pprTyVar"><span class="hs-identifier hs-var">pprTyVar</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850937"><span class="hs-identifier hs-var">tyvar</span></a></span><span>
</span><span id="line-432"></span><span>
</span><span id="line-433"></span><span class="hs-comment">-- pprIdBndr does *not* print the type</span><span>
</span><span id="line-434"></span><span class="hs-comment">-- When printing any Id binder in debug mode, we print its inline pragma and one-shot-ness</span><span>
</span><span id="line-435"></span><span class="annot"><a href="GHC.Core.Ppr.html#pprIdBndr"><span class="hs-identifier hs-type">pprIdBndr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Var.html#Id"><span class="hs-identifier hs-type">Id</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-436"></span><span id="pprIdBndr"><span class="annot"><span class="annottext">pprIdBndr :: Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprIdBndr"><span class="hs-identifier hs-var hs-var">pprIdBndr</span></a></span></span><span> </span><span id="local-6989586621680850935"><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850935"><span class="hs-identifier hs-var">id</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Id -&gt; SDoc
forall a. OutputableBndr a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprPrefixOcc"><span class="hs-identifier hs-var">pprPrefixOcc</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850935"><span class="hs-identifier hs-var">id</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprIdBndrInfo"><span class="hs-identifier hs-var">pprIdBndrInfo</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">HasDebugCallStack =&gt; Id -&gt; IdInfo
Id -&gt; IdInfo
</span><a href="GHC.Types.Var.html#idInfo"><span class="hs-identifier hs-var">idInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850935"><span class="hs-identifier hs-var">id</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-437"></span><span>
</span><span id="line-438"></span><span class="annot"><a href="GHC.Core.Ppr.html#pprIdBndrInfo"><span class="hs-identifier hs-type">pprIdBndrInfo</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Id.Info.html#IdInfo"><span class="hs-identifier hs-type">IdInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-439"></span><span id="pprIdBndrInfo"><span class="annot"><span class="annottext">pprIdBndrInfo :: IdInfo -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprIdBndrInfo"><span class="hs-identifier hs-var hs-var">pprIdBndrInfo</span></a></span></span><span> </span><span id="local-6989586621680850934"><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850934"><span class="hs-identifier hs-var">info</span></a></span></span><span>
</span><span id="line-440"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Bool) -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppUnlessOption"><span class="hs-identifier hs-var">ppUnlessOption</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressIdInfo"><span class="hs-identifier hs-var hs-var">sdocSuppressIdInfo</span></a></span><span>
</span><span id="line-441"></span><span>      </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850934"><span class="hs-identifier hs-var">info</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; SDoc -&gt; SDoc
</span><span class="hs-operator hs-var">`seq`</span></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680850932"><span class="hs-identifier hs-var">doc</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-comment">-- The seq is useful for poking on black holes</span><span>
</span><span id="line-442"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-443"></span><span>    </span><span id="local-6989586621680850931"><span class="annot"><span class="annottext">prag_info :: InlinePragma
</span><a href="#local-6989586621680850931"><span class="hs-identifier hs-var hs-var">prag_info</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; InlinePragma
</span><a href="GHC.Types.Id.Info.html#inlinePragInfo"><span class="hs-identifier hs-var hs-var">inlinePragInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850934"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-444"></span><span>    </span><span id="local-6989586621680850929"><span class="annot"><span class="annottext">occ_info :: OccInfo
</span><a href="#local-6989586621680850929"><span class="hs-identifier hs-var hs-var">occ_info</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; OccInfo
</span><a href="GHC.Types.Id.Info.html#occInfo"><span class="hs-identifier hs-var hs-var">occInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850934"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-445"></span><span>    </span><span id="local-6989586621680850927"><span class="annot"><span class="annottext">dmd_info :: Demand
</span><a href="#local-6989586621680850927"><span class="hs-identifier hs-var hs-var">dmd_info</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; Demand
</span><a href="GHC.Types.Id.Info.html#demandInfo"><span class="hs-identifier hs-var hs-var">demandInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850934"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-446"></span><span>    </span><span id="local-6989586621680850925"><span class="annot"><span class="annottext">lbv_info :: OneShotInfo
</span><a href="#local-6989586621680850925"><span class="hs-identifier hs-var hs-var">lbv_info</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; OneShotInfo
</span><a href="GHC.Types.Id.Info.html#oneShotInfo"><span class="hs-identifier hs-var">oneShotInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850934"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-447"></span><span>
</span><span id="line-448"></span><span>    </span><span id="local-6989586621680850923"><span class="annot"><span class="annottext">has_prag :: Bool
</span><a href="#local-6989586621680850923"><span class="hs-identifier hs-var hs-var">has_prag</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">InlinePragma -&gt; Bool
</span><a href="GHC.Types.Basic.html#isDefaultInlinePragma"><span class="hs-identifier hs-var">isDefaultInlinePragma</span></a></span><span> </span><span class="annot"><span class="annottext">InlinePragma
</span><a href="#local-6989586621680850931"><span class="hs-identifier hs-var">prag_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-449"></span><span>    </span><span id="local-6989586621680850921"><span class="annot"><span class="annottext">has_occ :: Bool
</span><a href="#local-6989586621680850921"><span class="hs-identifier hs-var hs-var">has_occ</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">OccInfo -&gt; Bool
</span><a href="GHC.Types.Basic.html#isNoOccInfo"><span class="hs-identifier hs-var">isNoOccInfo</span></a></span><span> </span><span class="annot"><span class="annottext">OccInfo
</span><a href="#local-6989586621680850929"><span class="hs-identifier hs-var">occ_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-450"></span><span>    </span><span id="local-6989586621680850919"><span class="annot"><span class="annottext">has_dmd :: Bool
</span><a href="#local-6989586621680850919"><span class="hs-identifier hs-var hs-var">has_dmd</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="annot"><span class="annottext">(Bool -&gt; Bool) -&gt; Bool -&gt; Bool
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Demand -&gt; Bool
</span><a href="GHC.Types.Demand.html#isTopDmd"><span class="hs-identifier hs-var">isTopDmd</span></a></span><span> </span><span class="annot"><span class="annottext">Demand
</span><a href="#local-6989586621680850927"><span class="hs-identifier hs-var">dmd_info</span></a></span><span>
</span><span id="line-451"></span><span>    </span><span id="local-6989586621680850917"><span class="annot"><span class="annottext">has_lbv :: Bool
</span><a href="#local-6989586621680850917"><span class="hs-identifier hs-var hs-var">has_lbv</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">OneShotInfo -&gt; Bool
</span><a href="GHC.Types.Basic.html#hasNoOneShotInfo"><span class="hs-identifier hs-var">hasNoOneShotInfo</span></a></span><span> </span><span class="annot"><span class="annottext">OneShotInfo
</span><a href="#local-6989586621680850925"><span class="hs-identifier hs-var">lbv_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-452"></span><span>
</span><span id="line-453"></span><span>    </span><span id="local-6989586621680850932"><span class="annot"><span class="annottext">doc :: SDoc
</span><a href="#local-6989586621680850932"><span class="hs-identifier hs-var hs-var">doc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(Bool, SDoc)] -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#showAttributes"><span class="hs-identifier hs-var">showAttributes</span></a></span><span>
</span><span id="line-454"></span><span>          </span><span class="hs-special">[</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850923"><span class="hs-identifier hs-var">has_prag</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;InlPrag=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">InlinePragma -&gt; SDoc
</span><a href="GHC.Types.Basic.html#pprInlineDebug"><span class="hs-identifier hs-var">pprInlineDebug</span></a></span><span> </span><span class="annot"><span class="annottext">InlinePragma
</span><a href="#local-6989586621680850931"><span class="hs-identifier hs-var">prag_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-455"></span><span>          </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850921"><span class="hs-identifier hs-var">has_occ</span></a></span><span class="hs-special">,</span><span>  </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Occ=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">OccInfo -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">OccInfo
</span><a href="#local-6989586621680850929"><span class="hs-identifier hs-var">occ_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-456"></span><span>          </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850919"><span class="hs-identifier hs-var">has_dmd</span></a></span><span class="hs-special">,</span><span>  </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Dmd=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Demand -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Demand
</span><a href="#local-6989586621680850927"><span class="hs-identifier hs-var">dmd_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-457"></span><span>          </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850917"><span class="hs-identifier hs-var">has_lbv</span></a></span><span> </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;OS=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">OneShotInfo -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">OneShotInfo
</span><a href="#local-6989586621680850925"><span class="hs-identifier hs-var">lbv_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-458"></span><span>          </span><span class="hs-special">]</span><span>
</span><span id="line-459"></span><span>
</span><span id="line-460"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680850901"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Types.Id.Info.html#IdInfo"><span class="hs-identifier hs-type">IdInfo</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-461"></span><span>  </span><span id="local-6989586621680850893"><span class="annot"><span class="annottext">ppr :: IdInfo -&gt; SDoc
</span><a href="#local-6989586621680850893"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680850892"><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850892"><span class="hs-identifier hs-var">info</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(Bool, SDoc)] -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#showAttributes"><span class="hs-identifier hs-var">showAttributes</span></a></span><span>
</span><span id="line-462"></span><span>    </span><span class="hs-special">[</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850891"><span class="hs-identifier hs-var">has_prag</span></a></span><span class="hs-special">,</span><span>         </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;InlPrag=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">InlinePragma -&gt; SDoc
</span><a href="GHC.Types.Basic.html#pprInlineDebug"><span class="hs-identifier hs-var">pprInlineDebug</span></a></span><span> </span><span class="annot"><span class="annottext">InlinePragma
</span><a href="#local-6989586621680850890"><span class="hs-identifier hs-var">prag_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-463"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850889"><span class="hs-identifier hs-var">has_occ</span></a></span><span class="hs-special">,</span><span>          </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Occ=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">OccInfo -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">OccInfo
</span><a href="#local-6989586621680850888"><span class="hs-identifier hs-var">occ_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-464"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850887"><span class="hs-identifier hs-var">has_dmd</span></a></span><span class="hs-special">,</span><span>          </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Dmd=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Demand -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Demand
</span><a href="#local-6989586621680850886"><span class="hs-identifier hs-var">dmd_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-465"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850885"><span class="hs-identifier hs-var">has_lbv</span></a></span><span> </span><span class="hs-special">,</span><span>         </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;OS=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">OneShotInfo -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">OneShotInfo
</span><a href="#local-6989586621680850884"><span class="hs-identifier hs-var">lbv_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-466"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850883"><span class="hs-identifier hs-var">has_arity</span></a></span><span class="hs-special">,</span><span>        </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Arity=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680850882"><span class="hs-identifier hs-var">arity</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-467"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850881"><span class="hs-identifier hs-var">has_called_arity</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;CallArity=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680850880"><span class="hs-identifier hs-var">called_arity</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-468"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850879"><span class="hs-identifier hs-var">has_caf_info</span></a></span><span class="hs-special">,</span><span>     </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Caf=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CafInfo -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CafInfo
</span><a href="#local-6989586621680850878"><span class="hs-identifier hs-var">caf_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-469"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850877"><span class="hs-identifier hs-var">has_str_info</span></a></span><span class="hs-special">,</span><span>     </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Str=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">StrictSig -&gt; SDoc
</span><a href="GHC.Types.Id.Info.html#pprStrictness"><span class="hs-identifier hs-var">pprStrictness</span></a></span><span> </span><span class="annot"><span class="annottext">StrictSig
</span><a href="#local-6989586621680850875"><span class="hs-identifier hs-var">str_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-470"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850874"><span class="hs-identifier hs-var">has_unf</span></a></span><span class="hs-special">,</span><span>          </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Unf=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Unfolding -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Unfolding
</span><a href="#local-6989586621680850873"><span class="hs-identifier hs-var">unf_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-471"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850872"><span class="hs-identifier hs-var">has_rules</span></a></span><span class="hs-special">,</span><span>        </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;RULES:&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(CoreRule -&gt; SDoc) -&gt; [CoreRule] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">CoreRule -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprRule"><span class="hs-identifier hs-var">pprRule</span></a></span><span> </span><span class="annot"><span class="annottext">[CoreRule]
</span><a href="#local-6989586621680850870"><span class="hs-identifier hs-var">rules</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-472"></span><span>    </span><span class="hs-special">]</span><span>
</span><span id="line-473"></span><span>    </span><span class="hs-keyword">where</span><span>
</span><span id="line-474"></span><span>      </span><span id="local-6989586621680850890"><span class="annot"><span class="annottext">prag_info :: InlinePragma
</span><a href="#local-6989586621680850890"><span class="hs-identifier hs-var hs-var">prag_info</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; InlinePragma
</span><a href="GHC.Types.Id.Info.html#inlinePragInfo"><span class="hs-identifier hs-var hs-var">inlinePragInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850892"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-475"></span><span>      </span><span id="local-6989586621680850891"><span class="annot"><span class="annottext">has_prag :: Bool
</span><a href="#local-6989586621680850891"><span class="hs-identifier hs-var hs-var">has_prag</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">InlinePragma -&gt; Bool
</span><a href="GHC.Types.Basic.html#isDefaultInlinePragma"><span class="hs-identifier hs-var">isDefaultInlinePragma</span></a></span><span> </span><span class="annot"><span class="annottext">InlinePragma
</span><a href="#local-6989586621680850890"><span class="hs-identifier hs-var">prag_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-476"></span><span>
</span><span id="line-477"></span><span>      </span><span id="local-6989586621680850888"><span class="annot"><span class="annottext">occ_info :: OccInfo
</span><a href="#local-6989586621680850888"><span class="hs-identifier hs-var hs-var">occ_info</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; OccInfo
</span><a href="GHC.Types.Id.Info.html#occInfo"><span class="hs-identifier hs-var hs-var">occInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850892"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-478"></span><span>      </span><span id="local-6989586621680850889"><span class="annot"><span class="annottext">has_occ :: Bool
</span><a href="#local-6989586621680850889"><span class="hs-identifier hs-var hs-var">has_occ</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">OccInfo -&gt; Bool
</span><a href="GHC.Types.Basic.html#isManyOccs"><span class="hs-identifier hs-var">isManyOccs</span></a></span><span> </span><span class="annot"><span class="annottext">OccInfo
</span><a href="#local-6989586621680850888"><span class="hs-identifier hs-var">occ_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-479"></span><span>
</span><span id="line-480"></span><span>      </span><span id="local-6989586621680850886"><span class="annot"><span class="annottext">dmd_info :: Demand
</span><a href="#local-6989586621680850886"><span class="hs-identifier hs-var hs-var">dmd_info</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; Demand
</span><a href="GHC.Types.Id.Info.html#demandInfo"><span class="hs-identifier hs-var hs-var">demandInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850892"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-481"></span><span>      </span><span id="local-6989586621680850887"><span class="annot"><span class="annottext">has_dmd :: Bool
</span><a href="#local-6989586621680850887"><span class="hs-identifier hs-var hs-var">has_dmd</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="annot"><span class="annottext">(Bool -&gt; Bool) -&gt; Bool -&gt; Bool
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Demand -&gt; Bool
</span><a href="GHC.Types.Demand.html#isTopDmd"><span class="hs-identifier hs-var">isTopDmd</span></a></span><span> </span><span class="annot"><span class="annottext">Demand
</span><a href="#local-6989586621680850886"><span class="hs-identifier hs-var">dmd_info</span></a></span><span>
</span><span id="line-482"></span><span>
</span><span id="line-483"></span><span>      </span><span id="local-6989586621680850884"><span class="annot"><span class="annottext">lbv_info :: OneShotInfo
</span><a href="#local-6989586621680850884"><span class="hs-identifier hs-var hs-var">lbv_info</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; OneShotInfo
</span><a href="GHC.Types.Id.Info.html#oneShotInfo"><span class="hs-identifier hs-var">oneShotInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850892"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-484"></span><span>      </span><span id="local-6989586621680850885"><span class="annot"><span class="annottext">has_lbv :: Bool
</span><a href="#local-6989586621680850885"><span class="hs-identifier hs-var hs-var">has_lbv</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">OneShotInfo -&gt; Bool
</span><a href="GHC.Types.Basic.html#hasNoOneShotInfo"><span class="hs-identifier hs-var">hasNoOneShotInfo</span></a></span><span> </span><span class="annot"><span class="annottext">OneShotInfo
</span><a href="#local-6989586621680850884"><span class="hs-identifier hs-var">lbv_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-485"></span><span>
</span><span id="line-486"></span><span>      </span><span id="local-6989586621680850882"><span class="annot"><span class="annottext">arity :: Int
</span><a href="#local-6989586621680850882"><span class="hs-identifier hs-var hs-var">arity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; Int
</span><a href="GHC.Types.Id.Info.html#arityInfo"><span class="hs-identifier hs-var">arityInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850892"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-487"></span><span>      </span><span id="local-6989586621680850883"><span class="annot"><span class="annottext">has_arity :: Bool
</span><a href="#local-6989586621680850883"><span class="hs-identifier hs-var hs-var">has_arity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680850882"><span class="hs-identifier hs-var">arity</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">/=</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span>
</span><span id="line-488"></span><span>
</span><span id="line-489"></span><span>      </span><span id="local-6989586621680850880"><span class="annot"><span class="annottext">called_arity :: Int
</span><a href="#local-6989586621680850880"><span class="hs-identifier hs-var hs-var">called_arity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; Int
</span><a href="GHC.Types.Id.Info.html#callArityInfo"><span class="hs-identifier hs-var">callArityInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850892"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-490"></span><span>      </span><span id="local-6989586621680850881"><span class="annot"><span class="annottext">has_called_arity :: Bool
</span><a href="#local-6989586621680850881"><span class="hs-identifier hs-var hs-var">has_called_arity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680850880"><span class="hs-identifier hs-var">called_arity</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">/=</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span>
</span><span id="line-491"></span><span>
</span><span id="line-492"></span><span>      </span><span id="local-6989586621680850878"><span class="annot"><span class="annottext">caf_info :: CafInfo
</span><a href="#local-6989586621680850878"><span class="hs-identifier hs-var hs-var">caf_info</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; CafInfo
</span><a href="GHC.Types.Id.Info.html#cafInfo"><span class="hs-identifier hs-var">cafInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850892"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-493"></span><span>      </span><span id="local-6989586621680850879"><span class="annot"><span class="annottext">has_caf_info :: Bool
</span><a href="#local-6989586621680850879"><span class="hs-identifier hs-var hs-var">has_caf_info</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CafInfo -&gt; Bool
</span><a href="GHC.Types.Id.Info.html#mayHaveCafRefs"><span class="hs-identifier hs-var">mayHaveCafRefs</span></a></span><span> </span><span class="annot"><span class="annottext">CafInfo
</span><a href="#local-6989586621680850878"><span class="hs-identifier hs-var">caf_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-494"></span><span>
</span><span id="line-495"></span><span>      </span><span id="local-6989586621680850875"><span class="annot"><span class="annottext">str_info :: StrictSig
</span><a href="#local-6989586621680850875"><span class="hs-identifier hs-var hs-var">str_info</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; StrictSig
</span><a href="GHC.Types.Id.Info.html#strictnessInfo"><span class="hs-identifier hs-var hs-var">strictnessInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850892"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-496"></span><span>      </span><span id="local-6989586621680850877"><span class="annot"><span class="annottext">has_str_info :: Bool
</span><a href="#local-6989586621680850877"><span class="hs-identifier hs-var hs-var">has_str_info</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">StrictSig -&gt; Bool
</span><a href="GHC.Types.Demand.html#isTopSig"><span class="hs-identifier hs-var">isTopSig</span></a></span><span> </span><span class="annot"><span class="annottext">StrictSig
</span><a href="#local-6989586621680850875"><span class="hs-identifier hs-var">str_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-497"></span><span>
</span><span id="line-498"></span><span>      </span><span id="local-6989586621680850873"><span class="annot"><span class="annottext">unf_info :: Unfolding
</span><a href="#local-6989586621680850873"><span class="hs-identifier hs-var hs-var">unf_info</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; Unfolding
</span><a href="GHC.Types.Id.Info.html#unfoldingInfo"><span class="hs-identifier hs-var hs-var">unfoldingInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850892"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-499"></span><span>      </span><span id="local-6989586621680850874"><span class="annot"><span class="annottext">has_unf :: Bool
</span><a href="#local-6989586621680850874"><span class="hs-identifier hs-var hs-var">has_unf</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Unfolding -&gt; Bool
</span><a href="GHC.Core.html#hasSomeUnfolding"><span class="hs-identifier hs-var">hasSomeUnfolding</span></a></span><span> </span><span class="annot"><span class="annottext">Unfolding
</span><a href="#local-6989586621680850873"><span class="hs-identifier hs-var">unf_info</span></a></span><span>
</span><span id="line-500"></span><span>
</span><span id="line-501"></span><span>      </span><span id="local-6989586621680850870"><span class="annot"><span class="annottext">rules :: [CoreRule]
</span><a href="#local-6989586621680850870"><span class="hs-identifier hs-var hs-var">rules</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RuleInfo -&gt; [CoreRule]
</span><a href="GHC.Types.Id.Info.html#ruleInfoRules"><span class="hs-identifier hs-var">ruleInfoRules</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IdInfo -&gt; RuleInfo
</span><a href="GHC.Types.Id.Info.html#ruleInfo"><span class="hs-identifier hs-var hs-var">ruleInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850892"><span class="hs-identifier hs-var">info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-502"></span><span>      </span><span id="local-6989586621680850872"><span class="annot"><span class="annottext">has_rules :: Bool
</span><a href="#local-6989586621680850872"><span class="hs-identifier hs-var hs-var">has_rules</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[CoreRule] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[CoreRule]
</span><a href="#local-6989586621680850870"><span class="hs-identifier hs-var">rules</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-503"></span><span>
</span><span id="line-504"></span><span class="hs-comment">{-
-----------------------------------------------------
--      IdDetails and IdInfo
-----------------------------------------------------
-}</span><span>
</span><span id="line-509"></span><span>
</span><span id="line-510"></span><span class="annot"><a href="GHC.Core.Ppr.html#ppIdInfo"><span class="hs-identifier hs-type">ppIdInfo</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.Var.html#Id"><span class="hs-identifier hs-type">Id</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Id.Info.html#IdInfo"><span class="hs-identifier hs-type">IdInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-511"></span><span id="ppIdInfo"><span class="annot"><span class="annottext">ppIdInfo :: Id -&gt; IdInfo -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#ppIdInfo"><span class="hs-identifier hs-var hs-var">ppIdInfo</span></a></span></span><span> </span><span id="local-6989586621680850852"><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850852"><span class="hs-identifier hs-var">id</span></a></span></span><span> </span><span id="local-6989586621680850851"><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850851"><span class="hs-identifier hs-var">info</span></a></span></span><span>
</span><span id="line-512"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Bool) -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppUnlessOption"><span class="hs-identifier hs-var">ppUnlessOption</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressIdInfo"><span class="hs-identifier hs-var hs-var">sdocSuppressIdInfo</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-513"></span><span>    </span><span class="annot"><span class="annottext">[(Bool, SDoc)] -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#showAttributes"><span class="hs-identifier hs-var">showAttributes</span></a></span><span>
</span><span id="line-514"></span><span>    </span><span class="hs-special">[</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680850850"><span class="hs-identifier hs-var">pp_scope</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">IdDetails -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Id -&gt; IdDetails
</span><a href="GHC.Types.Var.html#idDetails"><span class="hs-identifier hs-var">idDetails</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850852"><span class="hs-identifier hs-var">id</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-515"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850848"><span class="hs-identifier hs-var">has_arity</span></a></span><span class="hs-special">,</span><span>        </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Arity=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680850847"><span class="hs-identifier hs-var">arity</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-516"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850846"><span class="hs-identifier hs-var">has_called_arity</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;CallArity=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680850845"><span class="hs-identifier hs-var">called_arity</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-517"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850844"><span class="hs-identifier hs-var">has_caf_info</span></a></span><span class="hs-special">,</span><span>     </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Caf=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CafInfo -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CafInfo
</span><a href="#local-6989586621680850843"><span class="hs-identifier hs-var">caf_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-518"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850842"><span class="hs-identifier hs-var">has_str_info</span></a></span><span class="hs-special">,</span><span>     </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Str=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">StrictSig -&gt; SDoc
</span><a href="GHC.Types.Id.Info.html#pprStrictness"><span class="hs-identifier hs-var">pprStrictness</span></a></span><span> </span><span class="annot"><span class="annottext">StrictSig
</span><a href="#local-6989586621680850841"><span class="hs-identifier hs-var">str_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-519"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850840"><span class="hs-identifier hs-var">has_cpr_info</span></a></span><span class="hs-special">,</span><span>     </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Cpr=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CprSig -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CprSig
</span><a href="#local-6989586621680850839"><span class="hs-identifier hs-var">cpr_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-520"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850838"><span class="hs-identifier hs-var">has_unf</span></a></span><span class="hs-special">,</span><span>          </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Unf=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Unfolding -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Unfolding
</span><a href="#local-6989586621680850837"><span class="hs-identifier hs-var">unf_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-521"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[CoreRule] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[CoreRule]
</span><a href="#local-6989586621680850836"><span class="hs-identifier hs-var">rules</span></a></span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;RULES:&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(CoreRule -&gt; SDoc) -&gt; [CoreRule] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">CoreRule -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprRule"><span class="hs-identifier hs-var">pprRule</span></a></span><span> </span><span class="annot"><span class="annottext">[CoreRule]
</span><a href="#local-6989586621680850836"><span class="hs-identifier hs-var">rules</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-522"></span><span>    </span><span class="hs-special">]</span><span>   </span><span class="hs-comment">-- Inline pragma, occ, demand, one-shot info</span><span>
</span><span id="line-523"></span><span>        </span><span class="hs-comment">-- printed out with all binders (when debug is on);</span><span>
</span><span id="line-524"></span><span>        </span><span class="hs-comment">-- see GHC.Core.Ppr.pprIdBndr</span><span>
</span><span id="line-525"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-526"></span><span>    </span><span id="local-6989586621680850850"><span class="annot"><span class="annottext">pp_scope :: SDoc
</span><a href="#local-6989586621680850850"><span class="hs-identifier hs-var hs-var">pp_scope</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Id -&gt; Bool
</span><a href="GHC.Types.Var.html#isGlobalId"><span class="hs-identifier hs-var">isGlobalId</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850852"><span class="hs-identifier hs-var">id</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;GblId&quot;</span></span><span>
</span><span id="line-527"></span><span>             </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Id -&gt; Bool
</span><a href="GHC.Types.Var.html#isExportedId"><span class="hs-identifier hs-var">isExportedId</span></a></span><span> </span><span class="annot"><span class="annottext">Id
</span><a href="#local-6989586621680850852"><span class="hs-identifier hs-var">id</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;LclIdX&quot;</span></span><span>
</span><span id="line-528"></span><span>             </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;LclId&quot;</span></span><span>
</span><span id="line-529"></span><span>
</span><span id="line-530"></span><span>    </span><span id="local-6989586621680850847"><span class="annot"><span class="annottext">arity :: Int
</span><a href="#local-6989586621680850847"><span class="hs-identifier hs-var hs-var">arity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; Int
</span><a href="GHC.Types.Id.Info.html#arityInfo"><span class="hs-identifier hs-var">arityInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850851"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-531"></span><span>    </span><span id="local-6989586621680850848"><span class="annot"><span class="annottext">has_arity :: Bool
</span><a href="#local-6989586621680850848"><span class="hs-identifier hs-var hs-var">has_arity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680850847"><span class="hs-identifier hs-var">arity</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">/=</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span>
</span><span id="line-532"></span><span>
</span><span id="line-533"></span><span>    </span><span id="local-6989586621680850845"><span class="annot"><span class="annottext">called_arity :: Int
</span><a href="#local-6989586621680850845"><span class="hs-identifier hs-var hs-var">called_arity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; Int
</span><a href="GHC.Types.Id.Info.html#callArityInfo"><span class="hs-identifier hs-var">callArityInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850851"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-534"></span><span>    </span><span id="local-6989586621680850846"><span class="annot"><span class="annottext">has_called_arity :: Bool
</span><a href="#local-6989586621680850846"><span class="hs-identifier hs-var hs-var">has_called_arity</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680850845"><span class="hs-identifier hs-var">called_arity</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">/=</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span>
</span><span id="line-535"></span><span>
</span><span id="line-536"></span><span>    </span><span id="local-6989586621680850843"><span class="annot"><span class="annottext">caf_info :: CafInfo
</span><a href="#local-6989586621680850843"><span class="hs-identifier hs-var hs-var">caf_info</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; CafInfo
</span><a href="GHC.Types.Id.Info.html#cafInfo"><span class="hs-identifier hs-var">cafInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850851"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-537"></span><span>    </span><span id="local-6989586621680850844"><span class="annot"><span class="annottext">has_caf_info :: Bool
</span><a href="#local-6989586621680850844"><span class="hs-identifier hs-var hs-var">has_caf_info</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CafInfo -&gt; Bool
</span><a href="GHC.Types.Id.Info.html#mayHaveCafRefs"><span class="hs-identifier hs-var">mayHaveCafRefs</span></a></span><span> </span><span class="annot"><span class="annottext">CafInfo
</span><a href="#local-6989586621680850843"><span class="hs-identifier hs-var">caf_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-538"></span><span>
</span><span id="line-539"></span><span>    </span><span id="local-6989586621680850841"><span class="annot"><span class="annottext">str_info :: StrictSig
</span><a href="#local-6989586621680850841"><span class="hs-identifier hs-var hs-var">str_info</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; StrictSig
</span><a href="GHC.Types.Id.Info.html#strictnessInfo"><span class="hs-identifier hs-var hs-var">strictnessInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850851"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-540"></span><span>    </span><span id="local-6989586621680850842"><span class="annot"><span class="annottext">has_str_info :: Bool
</span><a href="#local-6989586621680850842"><span class="hs-identifier hs-var hs-var">has_str_info</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">StrictSig -&gt; Bool
</span><a href="GHC.Types.Demand.html#isTopSig"><span class="hs-identifier hs-var">isTopSig</span></a></span><span> </span><span class="annot"><span class="annottext">StrictSig
</span><a href="#local-6989586621680850841"><span class="hs-identifier hs-var">str_info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-541"></span><span>
</span><span id="line-542"></span><span>    </span><span id="local-6989586621680850839"><span class="annot"><span class="annottext">cpr_info :: CprSig
</span><a href="#local-6989586621680850839"><span class="hs-identifier hs-var hs-var">cpr_info</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; CprSig
</span><a href="GHC.Types.Id.Info.html#cprInfo"><span class="hs-identifier hs-var hs-var">cprInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850851"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-543"></span><span>    </span><span id="local-6989586621680850840"><span class="annot"><span class="annottext">has_cpr_info :: Bool
</span><a href="#local-6989586621680850840"><span class="hs-identifier hs-var hs-var">has_cpr_info</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CprSig
</span><a href="#local-6989586621680850839"><span class="hs-identifier hs-var">cpr_info</span></a></span><span> </span><span class="annot"><span class="annottext">CprSig -&gt; CprSig -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">/=</span></span><span> </span><span class="annot"><span class="annottext">CprSig
</span><a href="GHC.Types.Cpr.html#topCprSig"><span class="hs-identifier hs-var">topCprSig</span></a></span><span>
</span><span id="line-544"></span><span>
</span><span id="line-545"></span><span>    </span><span id="local-6989586621680850837"><span class="annot"><span class="annottext">unf_info :: Unfolding
</span><a href="#local-6989586621680850837"><span class="hs-identifier hs-var hs-var">unf_info</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IdInfo -&gt; Unfolding
</span><a href="GHC.Types.Id.Info.html#unfoldingInfo"><span class="hs-identifier hs-var hs-var">unfoldingInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850851"><span class="hs-identifier hs-var">info</span></a></span><span>
</span><span id="line-546"></span><span>    </span><span id="local-6989586621680850838"><span class="annot"><span class="annottext">has_unf :: Bool
</span><a href="#local-6989586621680850838"><span class="hs-identifier hs-var hs-var">has_unf</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Unfolding -&gt; Bool
</span><a href="GHC.Core.html#hasSomeUnfolding"><span class="hs-identifier hs-var">hasSomeUnfolding</span></a></span><span> </span><span class="annot"><span class="annottext">Unfolding
</span><a href="#local-6989586621680850837"><span class="hs-identifier hs-var">unf_info</span></a></span><span>
</span><span id="line-547"></span><span>
</span><span id="line-548"></span><span>    </span><span id="local-6989586621680850836"><span class="annot"><span class="annottext">rules :: [CoreRule]
</span><a href="#local-6989586621680850836"><span class="hs-identifier hs-var hs-var">rules</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RuleInfo -&gt; [CoreRule]
</span><a href="GHC.Types.Id.Info.html#ruleInfoRules"><span class="hs-identifier hs-var">ruleInfoRules</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IdInfo -&gt; RuleInfo
</span><a href="GHC.Types.Id.Info.html#ruleInfo"><span class="hs-identifier hs-var hs-var">ruleInfo</span></a></span><span> </span><span class="annot"><span class="annottext">IdInfo
</span><a href="#local-6989586621680850851"><span class="hs-identifier hs-var">info</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-549"></span><span>
</span><span id="line-550"></span><span class="annot"><a href="GHC.Core.Ppr.html#showAttributes"><span class="hs-identifier hs-type">showAttributes</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">,</span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-551"></span><span id="showAttributes"><span class="annot"><span class="annottext">showAttributes :: [(Bool, SDoc)] -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#showAttributes"><span class="hs-identifier hs-var hs-var">showAttributes</span></a></span></span><span> </span><span id="local-6989586621680850825"><span class="annot"><span class="annottext">[(Bool, SDoc)]
</span><a href="#local-6989586621680850825"><span class="hs-identifier hs-var">stuff</span></a></span></span><span>
</span><span id="line-552"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680850824"><span class="hs-identifier hs-var">docs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-553"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#brackets"><span class="hs-identifier hs-var">brackets</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
</span><a href="GHC.Utils.Outputable.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc]
</span><a href="#local-6989586621680850824"><span class="hs-identifier hs-var">docs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-554"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-555"></span><span>    </span><span id="local-6989586621680850824"><span class="annot"><span class="annottext">docs :: [SDoc]
</span><a href="#local-6989586621680850824"><span class="hs-identifier hs-var hs-var">docs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680850821"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span class="hs-special">,</span><span id="local-6989586621680850821"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680850821"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">[(Bool, SDoc)]
</span><a href="#local-6989586621680850825"><span class="hs-identifier hs-var">stuff</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-556"></span><span>
</span><span id="line-557"></span><span class="hs-comment">{-
-----------------------------------------------------
--      Unfolding and UnfoldingGuidance
-----------------------------------------------------
-}</span><span>
</span><span id="line-562"></span><span>
</span><span id="line-563"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680850818"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Core.html#UnfoldingGuidance"><span class="hs-identifier hs-type">UnfoldingGuidance</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-564"></span><span>    </span><span id="local-6989586621680850814"><span class="annot"><span class="annottext">ppr :: UnfoldingGuidance -&gt; SDoc
</span><a href="#local-6989586621680850814"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="annot"><span class="annottext">UnfoldingGuidance
</span><a href="GHC.Core.html#UnfNever"><span class="hs-identifier hs-var">UnfNever</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;NEVER&quot;</span></span><span>
</span><span id="line-565"></span><span>    </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#UnfWhen"><span class="hs-identifier hs-type">UnfWhen</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">ug_arity :: UnfoldingGuidance -&gt; Int
</span><a href="GHC.Core.html#ug_arity"><span class="hs-identifier hs-var">ug_arity</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850810"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680850810"><span class="hs-identifier hs-var">arity</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ug_unsat_ok :: UnfoldingGuidance -&gt; Bool
</span><a href="GHC.Core.html#ug_unsat_ok"><span class="hs-identifier hs-var">ug_unsat_ok</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850808"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850808"><span class="hs-identifier hs-var">unsat_ok</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ug_boring_ok :: UnfoldingGuidance -&gt; Bool
</span><a href="GHC.Core.html#ug_boring_ok"><span class="hs-identifier hs-var">ug_boring_ok</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850806"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850806"><span class="hs-identifier hs-var">boring_ok</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-566"></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ALWAYS_IF&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span>
</span><span id="line-567"></span><span>        </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;arity=&quot;</span></span><span>     </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680850810"><span class="hs-identifier hs-var">arity</span></a></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span>
</span><span id="line-568"></span><span>                </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;unsat_ok=&quot;</span></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850808"><span class="hs-identifier hs-var">unsat_ok</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span>
</span><span id="line-569"></span><span>                </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;boring_ok=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850806"><span class="hs-identifier hs-var">boring_ok</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-570"></span><span>    </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#UnfIfGoodArgs"><span class="hs-identifier hs-type">UnfIfGoodArgs</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">ug_args :: UnfoldingGuidance -&gt; [Int]
</span><a href="GHC.Core.html#ug_args"><span class="hs-identifier hs-var">ug_args</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850803"><span class="annot"><span class="annottext">[Int]
</span><a href="#local-6989586621680850803"><span class="hs-identifier hs-var">cs</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ug_size :: UnfoldingGuidance -&gt; Int
</span><a href="GHC.Core.html#ug_size"><span class="hs-identifier hs-var">ug_size</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850801"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680850801"><span class="hs-identifier hs-var">size</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ug_res :: UnfoldingGuidance -&gt; Int
</span><a href="GHC.Core.html#ug_res"><span class="hs-identifier hs-var">ug_res</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850799"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680850799"><span class="hs-identifier hs-var">discount</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-571"></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;IF_ARGS&quot;</span></span><span class="hs-special">,</span><span>
</span><span id="line-572"></span><span>               </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#brackets"><span class="hs-identifier hs-var">brackets</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hsep"><span class="hs-identifier hs-var">hsep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Int -&gt; SDoc) -&gt; [Int] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">[Int]
</span><a href="#local-6989586621680850803"><span class="hs-identifier hs-var">cs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-573"></span><span>               </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680850801"><span class="hs-identifier hs-var">size</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-574"></span><span>               </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680850799"><span class="hs-identifier hs-var">discount</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-575"></span><span>
</span><span id="line-576"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680850795"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Core.html#UnfoldingSource"><span class="hs-identifier hs-type">UnfoldingSource</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-577"></span><span>  </span><span id="local-6989586621680850794"><span class="annot"><span class="annottext">ppr :: UnfoldingSource -&gt; SDoc
</span><a href="#local-6989586621680850794"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="annot"><span class="annottext">UnfoldingSource
</span><a href="GHC.Core.html#InlineCompulsory"><span class="hs-identifier hs-var">InlineCompulsory</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Compulsory&quot;</span></span><span>
</span><span id="line-578"></span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">UnfoldingSource
</span><a href="GHC.Core.html#InlineStable"><span class="hs-identifier hs-var">InlineStable</span></a></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;InlineStable&quot;</span></span><span>
</span><span id="line-579"></span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">UnfoldingSource
</span><a href="GHC.Core.html#InlineRhs"><span class="hs-identifier hs-var">InlineRhs</span></a></span><span>         </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&lt;vanilla&gt;&quot;</span></span><span>
</span><span id="line-580"></span><span>
</span><span id="line-581"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680850788"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Core.html#Unfolding"><span class="hs-identifier hs-type">Unfolding</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-582"></span><span>  </span><span id="local-6989586621680850780"><span class="annot"><span class="annottext">ppr :: Unfolding -&gt; SDoc
</span><a href="#local-6989586621680850780"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="annot"><span class="annottext">Unfolding
</span><a href="GHC.Core.html#NoUnfolding"><span class="hs-identifier hs-var">NoUnfolding</span></a></span><span>                </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;No unfolding&quot;</span></span><span>
</span><span id="line-583"></span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Unfolding
</span><a href="GHC.Core.html#BootUnfolding"><span class="hs-identifier hs-var">BootUnfolding</span></a></span><span>              </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;No unfolding (from boot)&quot;</span></span><span>
</span><span id="line-584"></span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#OtherCon"><span class="hs-identifier hs-type">OtherCon</span></a></span><span> </span><span id="local-6989586621680850776"><span class="annot"><span class="annottext">[AltCon]
</span><a href="#local-6989586621680850776"><span class="hs-identifier hs-var">cs</span></a></span></span><span class="hs-special">)</span><span>              </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;OtherCon&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[AltCon] -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[AltCon]
</span><a href="#local-6989586621680850776"><span class="hs-identifier hs-var">cs</span></a></span><span>
</span><span id="line-585"></span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#DFunUnfolding"><span class="hs-identifier hs-type">DFunUnfolding</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">df_bndrs :: Unfolding -&gt; [Id]
</span><a href="GHC.Core.html#df_bndrs"><span class="hs-identifier hs-var">df_bndrs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850773"><span class="annot"><span class="annottext">[Id]
</span><a href="#local-6989586621680850773"><span class="hs-identifier hs-var">bndrs</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">df_con :: Unfolding -&gt; DataCon
</span><a href="GHC.Core.html#df_con"><span class="hs-identifier hs-var">df_con</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850771"><span class="annot"><span class="annottext">DataCon
</span><a href="#local-6989586621680850771"><span class="hs-identifier hs-var">con</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">df_args :: Unfolding -&gt; [CoreExpr]
</span><a href="GHC.Core.html#df_args"><span class="hs-identifier hs-var">df_args</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850769"><span class="annot"><span class="annottext">[CoreExpr]
</span><a href="#local-6989586621680850769"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-586"></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hang"><span class="hs-identifier hs-var">hang</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;DFun:&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\\&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-587"></span><span>                </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Id -&gt; SDoc) -&gt; [Id] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BindingSite -&gt; Id -&gt; SDoc
forall a. OutputableBndr a =&gt; BindingSite -&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprBndr"><span class="hs-identifier hs-var">pprBndr</span></a></span><span> </span><span class="annot"><span class="annottext">BindingSite
</span><a href="GHC.Utils.Outputable.html#LambdaBind"><span class="hs-identifier hs-var">LambdaBind</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Id]
</span><a href="#local-6989586621680850773"><span class="hs-identifier hs-var">bndrs</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#arrow"><span class="hs-identifier hs-var">arrow</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-588"></span><span>            </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DataCon -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">DataCon
</span><a href="#local-6989586621680850771"><span class="hs-identifier hs-var">con</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Annotation Id -&gt; [CoreExpr] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation Id
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[CoreExpr]
</span><a href="#local-6989586621680850769"><span class="hs-identifier hs-var">args</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-589"></span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#CoreUnfolding"><span class="hs-identifier hs-type">CoreUnfolding</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">uf_src :: Unfolding -&gt; UnfoldingSource
</span><a href="GHC.Core.html#uf_src"><span class="hs-identifier hs-var">uf_src</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850764"><span class="annot"><span class="annottext">UnfoldingSource
</span><a href="#local-6989586621680850764"><span class="hs-identifier hs-var">src</span></a></span></span><span>
</span><span id="line-590"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">uf_tmpl :: Unfolding -&gt; CoreExpr
</span><a href="GHC.Core.html#uf_tmpl"><span class="hs-identifier hs-var">uf_tmpl</span></a></span><span class="hs-glyph">=</span><span id="local-6989586621680850762"><span class="annot"><span class="annottext">CoreExpr
</span><a href="#local-6989586621680850762"><span class="hs-identifier hs-var">rhs</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">uf_is_top :: Unfolding -&gt; Bool
</span><a href="GHC.Core.html#uf_is_top"><span class="hs-identifier hs-var">uf_is_top</span></a></span><span class="hs-glyph">=</span><span id="local-6989586621680850760"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850760"><span class="hs-identifier hs-var">top</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">uf_is_value :: Unfolding -&gt; Bool
</span><a href="GHC.Core.html#uf_is_value"><span class="hs-identifier hs-var">uf_is_value</span></a></span><span class="hs-glyph">=</span><span id="local-6989586621680850758"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850758"><span class="hs-identifier hs-var">hnf</span></a></span></span><span>
</span><span id="line-591"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">uf_is_conlike :: Unfolding -&gt; Bool
</span><a href="GHC.Core.html#uf_is_conlike"><span class="hs-identifier hs-var">uf_is_conlike</span></a></span><span class="hs-glyph">=</span><span id="local-6989586621680850756"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850756"><span class="hs-identifier hs-var">conlike</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">uf_is_work_free :: Unfolding -&gt; Bool
</span><a href="GHC.Core.html#uf_is_work_free"><span class="hs-identifier hs-var">uf_is_work_free</span></a></span><span class="hs-glyph">=</span><span id="local-6989586621680850754"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850754"><span class="hs-identifier hs-var">wf</span></a></span></span><span>
</span><span id="line-592"></span><span>                     </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">uf_expandable :: Unfolding -&gt; Bool
</span><a href="GHC.Core.html#uf_expandable"><span class="hs-identifier hs-var">uf_expandable</span></a></span><span class="hs-glyph">=</span><span id="local-6989586621680850752"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850752"><span class="hs-identifier hs-var">exp</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">uf_guidance :: Unfolding -&gt; UnfoldingGuidance
</span><a href="GHC.Core.html#uf_guidance"><span class="hs-identifier hs-var">uf_guidance</span></a></span><span class="hs-glyph">=</span><span id="local-6989586621680850750"><span class="annot"><span class="annottext">UnfoldingGuidance
</span><a href="#local-6989586621680850750"><span class="hs-identifier hs-var">g</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-593"></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Unf&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680850748"><span class="hs-identifier hs-var">pp_info</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680850747"><span class="hs-identifier hs-var">pp_rhs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-594"></span><span>    </span><span class="hs-keyword">where</span><span>
</span><span id="line-595"></span><span>      </span><span id="local-6989586621680850748"><span class="annot"><span class="annottext">pp_info :: SDoc
</span><a href="#local-6989586621680850748"><span class="hs-identifier hs-var hs-var">pp_info</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#fsep"><span class="hs-identifier hs-var">fsep</span></a></span><span> </span><span class="annot"><span class="annottext">([SDoc] -&gt; SDoc) -&gt; [SDoc] -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
</span><a href="GHC.Utils.Outputable.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span>
</span><span id="line-596"></span><span>                </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Src=&quot;</span></span><span>        </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">UnfoldingSource -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">UnfoldingSource
</span><a href="#local-6989586621680850764"><span class="hs-identifier hs-var">src</span></a></span><span>
</span><span id="line-597"></span><span>                </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;TopLvl=&quot;</span></span><span>     </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850760"><span class="hs-identifier hs-var">top</span></a></span><span>
</span><span id="line-598"></span><span>                </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Value=&quot;</span></span><span>      </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850758"><span class="hs-identifier hs-var">hnf</span></a></span><span>
</span><span id="line-599"></span><span>                </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ConLike=&quot;</span></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850756"><span class="hs-identifier hs-var">conlike</span></a></span><span>
</span><span id="line-600"></span><span>                </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;WorkFree=&quot;</span></span><span>   </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850754"><span class="hs-identifier hs-var">wf</span></a></span><span>
</span><span id="line-601"></span><span>                </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Expandable=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850752"><span class="hs-identifier hs-var">exp</span></a></span><span>
</span><span id="line-602"></span><span>                </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Guidance=&quot;</span></span><span>   </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">UnfoldingGuidance -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">UnfoldingGuidance
</span><a href="#local-6989586621680850750"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-603"></span><span>      </span><span id="local-6989586621680850737"><span class="annot"><span class="annottext">pp_tmpl :: SDoc
</span><a href="#local-6989586621680850737"><span class="hs-identifier hs-var hs-var">pp_tmpl</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(SDocContext -&gt; Bool) -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppUnlessOption"><span class="hs-identifier hs-var">ppUnlessOption</span></a></span><span> </span><span class="annot"><span class="annottext">SDocContext -&gt; Bool
</span><a href="GHC.Utils.Outputable.html#sdocSuppressUnfoldings"><span class="hs-identifier hs-var hs-var">sdocSuppressUnfoldings</span></a></span><span>
</span><span id="line-604"></span><span>                  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Tmpl=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation Id
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CoreExpr
</span><a href="#local-6989586621680850762"><span class="hs-identifier hs-var">rhs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-605"></span><span>      </span><span id="local-6989586621680850747"><span class="annot"><span class="annottext">pp_rhs :: SDoc
</span><a href="#local-6989586621680850747"><span class="hs-identifier hs-var hs-var">pp_rhs</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">UnfoldingSource -&gt; Bool
</span><a href="GHC.Core.html#isStableSource"><span class="hs-identifier hs-var">isStableSource</span></a></span><span> </span><span class="annot"><span class="annottext">UnfoldingSource
</span><a href="#local-6989586621680850764"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621680850737"><span class="hs-identifier hs-var">pp_tmpl</span></a></span><span>
</span><span id="line-606"></span><span>             </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>          </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-607"></span><span>            </span><span class="hs-comment">-- Don't print the RHS or we get a quadratic</span><span>
</span><span id="line-608"></span><span>            </span><span class="hs-comment">-- blowup in the size of the printout!</span><span>
</span><span id="line-609"></span><span>
</span><span id="line-610"></span><span class="hs-comment">{-
-----------------------------------------------------
--      Rules
-----------------------------------------------------
-}</span><span>
</span><span id="line-615"></span><span>
</span><span id="line-616"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680850732"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Core.html#CoreRule"><span class="hs-identifier hs-type">CoreRule</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-617"></span><span>   </span><span id="local-6989586621680850731"><span class="annot"><span class="annottext">ppr :: CoreRule -&gt; SDoc
</span><a href="#local-6989586621680850731"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CoreRule -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprRule"><span class="hs-identifier hs-var">pprRule</span></a></span><span>
</span><span id="line-618"></span><span>
</span><span id="line-619"></span><span class="annot"><a href="GHC.Core.Ppr.html#pprRules"><span class="hs-identifier hs-type">pprRules</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Core.html#CoreRule"><span class="hs-identifier hs-type">CoreRule</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-620"></span><span id="pprRules"><span class="annot"><span class="annottext">pprRules :: [CoreRule] -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprRules"><span class="hs-identifier hs-var hs-var">pprRules</span></a></span></span><span> </span><span id="local-6989586621680850730"><span class="annot"><span class="annottext">[CoreRule]
</span><a href="#local-6989586621680850730"><span class="hs-identifier hs-var">rules</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(CoreRule -&gt; SDoc) -&gt; [CoreRule] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">CoreRule -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprRule"><span class="hs-identifier hs-var">pprRule</span></a></span><span> </span><span class="annot"><span class="annottext">[CoreRule]
</span><a href="#local-6989586621680850730"><span class="hs-identifier hs-var">rules</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-621"></span><span>
</span><span id="line-622"></span><span class="annot"><a href="GHC.Core.Ppr.html#pprRule"><span class="hs-identifier hs-type">pprRule</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Core.html#CoreRule"><span class="hs-identifier hs-type">CoreRule</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-623"></span><span id="pprRule"><span class="annot"><span class="annottext">pprRule :: CoreRule -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprRule"><span class="hs-identifier hs-var hs-var">pprRule</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#BuiltinRule"><span class="hs-identifier hs-type">BuiltinRule</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">ru_fn :: CoreRule -&gt; Name
</span><a href="GHC.Core.html#ru_fn"><span class="hs-identifier hs-var">ru_fn</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850727"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621680850727"><span class="hs-identifier hs-var">fn</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ru_name :: CoreRule -&gt; RuleName
</span><a href="GHC.Core.html#ru_name"><span class="hs-identifier hs-var">ru_name</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850725"><span class="annot"><span class="annottext">RuleName
</span><a href="#local-6989586621680850725"><span class="hs-identifier hs-var">name</span></a></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-624"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Built in rule for&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Name -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621680850727"><span class="hs-identifier hs-var">fn</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#doubleQuotes"><span class="hs-identifier hs-var">doubleQuotes</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RuleName -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">RuleName
</span><a href="#local-6989586621680850725"><span class="hs-identifier hs-var">name</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-625"></span><span>
</span><span id="line-626"></span><span class="annot"><a href="GHC.Core.Ppr.html#pprRule"><span class="hs-identifier hs-var">pprRule</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Rule"><span class="hs-identifier hs-type">Rule</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">ru_name :: CoreRule -&gt; RuleName
</span><a href="GHC.Core.html#ru_name"><span class="hs-identifier hs-var">ru_name</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850720"><span class="annot"><span class="annottext">RuleName
</span><a href="#local-6989586621680850720"><span class="hs-identifier hs-var">name</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ru_act :: CoreRule -&gt; Activation
</span><a href="GHC.Core.html#ru_act"><span class="hs-identifier hs-var">ru_act</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850718"><span class="annot"><span class="annottext">Activation
</span><a href="#local-6989586621680850718"><span class="hs-identifier hs-var">act</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ru_fn :: CoreRule -&gt; Name
</span><a href="GHC.Core.html#ru_fn"><span class="hs-identifier hs-var">ru_fn</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850717"><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621680850717"><span class="hs-identifier hs-var">fn</span></a></span></span><span class="hs-special">,</span><span>
</span><span id="line-627"></span><span>                </span><span class="annot"><span class="annottext">ru_bndrs :: CoreRule -&gt; [Id]
</span><a href="GHC.Core.html#ru_bndrs"><span class="hs-identifier hs-var">ru_bndrs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850715"><span class="annot"><span class="annottext">[Id]
</span><a href="#local-6989586621680850715"><span class="hs-identifier hs-var">tpl_vars</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">ru_args :: CoreRule -&gt; [CoreExpr]
</span><a href="GHC.Core.html#ru_args"><span class="hs-identifier hs-var">ru_args</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850713"><span class="annot"><span class="annottext">[CoreExpr]
</span><a href="#local-6989586621680850713"><span class="hs-identifier hs-var">tpl_args</span></a></span></span><span class="hs-special">,</span><span>
</span><span id="line-628"></span><span>                </span><span class="annot"><span class="annottext">ru_rhs :: CoreRule -&gt; CoreExpr
</span><a href="GHC.Core.html#ru_rhs"><span class="hs-identifier hs-var">ru_rhs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850711"><span class="annot"><span class="annottext">CoreExpr
</span><a href="#local-6989586621680850711"><span class="hs-identifier hs-var">rhs</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-629"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hang"><span class="hs-identifier hs-var">hang</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#doubleQuotes"><span class="hs-identifier hs-var">doubleQuotes</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RuleName -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">RuleName
</span><a href="#local-6989586621680850720"><span class="hs-identifier hs-var">name</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Activation -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Activation
</span><a href="#local-6989586621680850718"><span class="hs-identifier hs-var">act</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-630"></span><span>       </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">4</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;forall&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span>
</span><span id="line-631"></span><span>                  </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Id -&gt; SDoc) -&gt; [Id] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BindingSite -&gt; Id -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreBinder"><span class="hs-identifier hs-var">pprCoreBinder</span></a></span><span> </span><span class="annot"><span class="annottext">BindingSite
</span><a href="GHC.Utils.Outputable.html#LambdaBind"><span class="hs-identifier hs-var">LambdaBind</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Id]
</span><a href="#local-6989586621680850715"><span class="hs-identifier hs-var">tpl_vars</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#dot"><span class="hs-identifier hs-var">dot</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-632"></span><span>               </span><span class="annot"><span class="annottext">Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Name -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Name
</span><a href="#local-6989586621680850717"><span class="hs-identifier hs-var">fn</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sep"><span class="hs-identifier hs-var">sep</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Annotation Id -&gt; [CoreExpr] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation Id
forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprArg"><span class="hs-identifier hs-var">pprArg</span></a></span><span> </span><span class="annot"><span class="annottext">[CoreExpr]
</span><a href="#local-6989586621680850713"><span class="hs-identifier hs-var">tpl_args</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-633"></span><span>               </span><span class="annot"><span class="annottext">Int -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#nest"><span class="hs-identifier hs-var">nest</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;=&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Annotation Id
forall b. OutputableBndr b =&gt; Expr b -&gt; SDoc
</span><a href="GHC.Core.Ppr.html#pprCoreExpr"><span class="hs-identifier hs-var">pprCoreExpr</span></a></span><span> </span><span class="annot"><span class="annottext">CoreExpr
</span><a href="#local-6989586621680850711"><span class="hs-identifier hs-var">rhs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-634"></span><span>            </span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-635"></span><span>
</span><span id="line-636"></span><span class="hs-comment">{-
-----------------------------------------------------
--      Tickish
-----------------------------------------------------
-}</span><span>
</span><span id="line-641"></span><span>
</span><span id="line-642"></span><span id="local-6989586621680851405"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680850707"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851405"><span class="hs-identifier hs-type">id</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Tickish"><span class="hs-identifier hs-type">Tickish</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680851405"><span class="hs-identifier hs-type">id</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-643"></span><span>  </span><span id="local-6989586621680850696"><span class="annot"><span class="annottext">ppr :: Tickish id -&gt; SDoc
</span><a href="#local-6989586621680850696"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#HpcTick"><span class="hs-identifier hs-type">HpcTick</span></a></span><span> </span><span id="local-6989586621680850694"><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680850694"><span class="hs-identifier hs-var">modl</span></a></span></span><span> </span><span id="local-6989586621680850693"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680850693"><span class="hs-identifier hs-var">ix</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-644"></span><span>      </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;hpc&lt;&quot;</span></span><span class="hs-special">,</span><span>
</span><span id="line-645"></span><span>            </span><span class="annot"><span class="annottext">Module -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Module
</span><a href="#local-6989586621680850694"><span class="hs-identifier hs-var">modl</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-646"></span><span>            </span><span class="annot"><span class="annottext">Int -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680850693"><span class="hs-identifier hs-var">ix</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-647"></span><span>            </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&gt;&quot;</span></span><span class="hs-special">]</span><span>
</span><span id="line-648"></span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#Breakpoint"><span class="hs-identifier hs-type">Breakpoint</span></a></span><span> </span><span id="local-6989586621680850690"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680850690"><span class="hs-identifier hs-var">ix</span></a></span></span><span> </span><span id="local-6989586621680850689"><span class="annot"><span class="annottext">[id]
</span><a href="#local-6989586621680850689"><span class="hs-identifier hs-var">vars</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-649"></span><span>      </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;break&lt;&quot;</span></span><span class="hs-special">,</span><span>
</span><span id="line-650"></span><span>            </span><span class="annot"><span class="annottext">Int -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680850690"><span class="hs-identifier hs-var">ix</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-651"></span><span>            </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&gt;&quot;</span></span><span class="hs-special">,</span><span>
</span><span id="line-652"></span><span>            </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
</span><a href="GHC.Utils.Outputable.html#punctuate"><span class="hs-identifier hs-var">punctuate</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(id -&gt; SDoc) -&gt; [id] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">id -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">[id]
</span><a href="#local-6989586621680850689"><span class="hs-identifier hs-var">vars</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-653"></span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#ProfNote"><span class="hs-identifier hs-type">ProfNote</span></a></span><span> </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">profNoteCC :: forall id. Tickish id -&gt; CostCentre
</span><a href="GHC.Core.html#profNoteCC"><span class="hs-identifier hs-var">profNoteCC</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850686"><span class="annot"><span class="annottext">CostCentre
</span><a href="#local-6989586621680850686"><span class="hs-identifier hs-var">cc</span></a></span></span><span class="hs-special">,</span><span>
</span><span id="line-654"></span><span>                  </span><span class="annot"><span class="annottext">profNoteCount :: forall id. Tickish id -&gt; Bool
</span><a href="GHC.Core.html#profNoteCount"><span class="hs-identifier hs-var">profNoteCount</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850684"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850684"><span class="hs-identifier hs-var">tick</span></a></span></span><span class="hs-special">,</span><span>
</span><span id="line-655"></span><span>                  </span><span class="annot"><span class="annottext">profNoteScope :: forall id. Tickish id -&gt; Bool
</span><a href="GHC.Core.html#profNoteScope"><span class="hs-identifier hs-var">profNoteScope</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="local-6989586621680850682"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850682"><span class="hs-identifier hs-var">scope</span></a></span></span><span> </span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-656"></span><span>      </span><span class="hs-keyword">case</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850684"><span class="hs-identifier hs-var">tick</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680850682"><span class="hs-identifier hs-var">scope</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-657"></span><span>         </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;scctick&lt;&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">CostCentre -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CostCentre
</span><a href="#local-6989586621680850686"><span class="hs-identifier hs-var">cc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&gt;'</span></span><span class="hs-special">]</span><span>
</span><span id="line-658"></span><span>         </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;tick&lt;&quot;</span></span><span class="hs-special">,</span><span>    </span><span class="annot"><span class="annottext">CostCentre -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CostCentre
</span><a href="#local-6989586621680850686"><span class="hs-identifier hs-var">cc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&gt;'</span></span><span class="hs-special">]</span><span>
</span><span id="line-659"></span><span>         </span><span class="annot"><span class="annottext">(Bool, Bool)
</span><span class="hs-identifier">_</span></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;scc&lt;&quot;</span></span><span class="hs-special">,</span><span>     </span><span class="annot"><span class="annottext">CostCentre -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CostCentre
</span><a href="#local-6989586621680850686"><span class="hs-identifier hs-var">cc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&gt;'</span></span><span class="hs-special">]</span><span>
</span><span id="line-660"></span><span>  </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Core.html#SourceNote"><span class="hs-identifier hs-type">SourceNote</span></a></span><span> </span><span id="local-6989586621680850680"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680850680"><span class="hs-identifier hs-var">span</span></a></span></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-661"></span><span>      </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;src&lt;&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; RealSrcSpan -&gt; SDoc
</span><a href="GHC.Types.SrcLoc.html#pprUserRealSpan"><span class="hs-identifier hs-var">pprUserRealSpan</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680850680"><span class="hs-identifier hs-var">span</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'&gt;'</span></span><span class="hs-special">]</span></span><span>
</span><span id="line-662"></span></pre></body></html>